// $ANTLR 3.1.1 C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g 2009-03-03 22:13:47
// The variable 'variable' is assigned but its value is never used.
#pragma warning disable 168, 219
// Unreachable code detected.
#pragma warning disable 162
namespace 
	ConsoleApplicationANTLR 

{

	using System.Collections.Generic;
	using EditeurSyntaxiqueVocal.Languages.LanguageZ;



using System;
using Antlr.Runtime;
using IList 		= System.Collections.IList;
using ArrayList 	= System.Collections.ArrayList;
using Stack 		= Antlr.Runtime.Collections.StackList;

using IDictionary	= System.Collections.IDictionary;
using Hashtable 	= System.Collections.Hashtable;

public partial class GrammaireZParser : Parser
{
    public static readonly string[] tokenNames = new string[] 
	{
        "<invalid>", 
		"<EOR>", 
		"<DOWN>", 
		"<UP>", 
		"ID", 
		"CSTE", 
		"CHAINE", 
		"OPR", 
		"WS", 
		"COMMENT", 
		"'debut'", 
		"'fin'", 
		"';'", 
		"'action'", 
		"'('", 
		"')'", 
		"'fonction'", 
		"':'", 
		"','", 
		"'machine_car'", 
		"'machine_nombre'", 
		"'pointeur'", 
		"'vers'", 
		"'liste'", 
		"'listes'", 
		"'de'", 
		"'tableau'", 
		"'fichier'", 
		"'vecteur'", 
		"'buffer'", 
		"'entete'", 
		"'structure'", 
		"'tantque'", 
		"'tq'", 
		"'fintantque'", 
		"'ftq'", 
		"'ftantque'", 
		"'si'", 
		"'sinon'", 
		"'fsi'", 
		"'finsi'", 
		"'pour'", 
		"':='", 
		"'finpour'", 
		"'fp'", 
		"'fpour'", 
		"'appel'", 
		"'lire'", 
		"'ecrire'", 
		"'liberer'", 
		"'fllouer'", 
		"'fermer'", 
		"'ouvrir'", 
		"'lirecar'", 
		"'lirenombre'", 
		"'lireseq'", 
		"'ecrireseq'", 
		"'rajouter'", 
		"'aff_adr'", 
		"'aff_val'", 
		"'creer_liste'", 
		"'init_vecteur'", 
		"'creer_mnombre'", 
		"'init_struct'", 
		"'['", 
		"']'", 
		"'creer_mcar'", 
		"'aff_element'", 
		"'aff_struct'", 
		"'aff_entete'", 
		"'liredir'", 
		"'ecriredir'", 
		"'+'", 
		"'-'", 
		"'ou'", 
		"'*'", 
		"'/'", 
		"'et'", 
		"'nil'", 
		"'non'", 
		"'vrai'", 
		"'faux'", 
		"'valeur'", 
		"'suivant'", 
		"'element'", 
		"'struct'", 
		"'caract'", 
		"'aleachaine'", 
		"'aleanombre'", 
		"'longchaine'", 
		"'nbrcar'", 
		"'nbrNombre'", 
		"'finfich'", 
		"'alloc_bloc'", 
		"'un'", 
		"'une'", 
		"'des'", 
		"'entier'", 
		"'booleen'", 
		"'car'", 
		"'chaine'", 
		"'soit'", 
		"'soient'"
    };

    public const int CSTE = 5;
    public const int T__29 = 29;
    public const int T__28 = 28;
    public const int T__27 = 27;
    public const int T__26 = 26;
    public const int T__25 = 25;
    public const int T__24 = 24;
    public const int T__23 = 23;
    public const int T__22 = 22;
    public const int T__21 = 21;
    public const int T__20 = 20;
    public const int EOF = -1;
    public const int T__93 = 93;
    public const int T__19 = 19;
    public const int T__94 = 94;
    public const int T__91 = 91;
    public const int T__92 = 92;
    public const int T__16 = 16;
    public const int T__15 = 15;
    public const int T__90 = 90;
    public const int T__18 = 18;
    public const int T__17 = 17;
    public const int T__12 = 12;
    public const int T__11 = 11;
    public const int T__14 = 14;
    public const int T__13 = 13;
    public const int T__10 = 10;
    public const int COMMENT = 9;
    public const int T__99 = 99;
    public const int T__98 = 98;
    public const int T__97 = 97;
    public const int T__96 = 96;
    public const int T__95 = 95;
    public const int T__80 = 80;
    public const int T__81 = 81;
    public const int T__82 = 82;
    public const int T__83 = 83;
    public const int CHAINE = 6;
    public const int T__85 = 85;
    public const int T__84 = 84;
    public const int T__87 = 87;
    public const int T__86 = 86;
    public const int T__89 = 89;
    public const int T__88 = 88;
    public const int WS = 8;
    public const int T__71 = 71;
    public const int T__72 = 72;
    public const int T__70 = 70;
    public const int T__76 = 76;
    public const int T__75 = 75;
    public const int T__74 = 74;
    public const int T__73 = 73;
    public const int T__79 = 79;
    public const int T__78 = 78;
    public const int T__77 = 77;
    public const int T__68 = 68;
    public const int T__69 = 69;
    public const int T__66 = 66;
    public const int T__67 = 67;
    public const int T__64 = 64;
    public const int T__65 = 65;
    public const int T__62 = 62;
    public const int T__63 = 63;
    public const int ID = 4;
    public const int T__61 = 61;
    public const int T__60 = 60;
    public const int T__55 = 55;
    public const int T__56 = 56;
    public const int T__57 = 57;
    public const int T__58 = 58;
    public const int T__51 = 51;
    public const int T__52 = 52;
    public const int T__53 = 53;
    public const int T__54 = 54;
    public const int T__59 = 59;
    public const int T__50 = 50;
    public const int T__42 = 42;
    public const int T__43 = 43;
    public const int T__40 = 40;
    public const int T__41 = 41;
    public const int T__46 = 46;
    public const int T__47 = 47;
    public const int T__44 = 44;
    public const int T__45 = 45;
    public const int T__48 = 48;
    public const int T__49 = 49;
    public const int OPR = 7;
    public const int T__102 = 102;
    public const int T__101 = 101;
    public const int T__100 = 100;
    public const int T__30 = 30;
    public const int T__31 = 31;
    public const int T__32 = 32;
    public const int T__33 = 33;
    public const int T__34 = 34;
    public const int T__35 = 35;
    public const int T__36 = 36;
    public const int T__37 = 37;
    public const int T__38 = 38;
    public const int T__39 = 39;

    // delegates
    // delegators



        public GrammaireZParser(ITokenStream input)
    		: this(input, new RecognizerSharedState()) {
        }

        public GrammaireZParser(ITokenStream input, RecognizerSharedState state)
    		: base(input, state) {
            InitializeCyclicDFAs();

             
        }
        

    override public string[] TokenNames {
		get { return GrammaireZParser.tokenNames; }
    }

    override public string GrammarFileName {
		get { return "C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g"; }
    }


    	public Dictionary<string, object> ListProgram =  new Dictionary<string, object>();
    			



    // $ANTLR start "program"
    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:20:1: program : algoZ ;
    public void program() // throws RecognitionException [1]
    {   

         	GlobalObjects.input =input;

        try 
    	{
            // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:24:5: ( algoZ )
            // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:24:9: algoZ
            {
            	PushFollow(FOLLOW_algoZ_in_program66);
            	algoZ();
            	state.followingStackPointer--;
            	if (state.failed) return ;

            }

        }
        catch (RecognitionException re) 
    	{
            ReportError(re);
            Recover(input,re);
        }
        finally 
    	{
        }
        return ;
    }
    // $ANTLR end "program"


    // $ANTLR start "algoZ"
    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:27:1: algoZ : (st= soit p= ps )? d= 'debut' l= lisIngnore e= 'fin' ( ';' )? ( (f= fon | a= act ) ( ';' )? )* ;
    public void algoZ() // throws RecognitionException [1]
    {   
        IToken d = null;
        IToken e = null;
        GrammaireZParser.soit_return st = default(GrammaireZParser.soit_return);

        List<VariableDeclare> p = default(List<VariableDeclare>);




        try 
    	{
            // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:30:2: ( (st= soit p= ps )? d= 'debut' l= lisIngnore e= 'fin' ( ';' )? ( (f= fon | a= act ) ( ';' )? )* )
            // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:30:4: (st= soit p= ps )? d= 'debut' l= lisIngnore e= 'fin' ( ';' )? ( (f= fon | a= act ) ( ';' )? )*
            {
            	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:30:4: (st= soit p= ps )?
            	int alt1 = 2;
            	int LA1_0 = input.LA(1);

            	if ( ((LA1_0 >= 101 && LA1_0 <= 102)) )
            	{
            	    alt1 = 1;
            	}
            	switch (alt1) 
            	{
            	    case 1 :
            	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:30:5: st= soit p= ps
            	        {
            	        	PushFollow(FOLLOW_soit_in_algoZ88);
            	        	st = soit();
            	        	state.followingStackPointer--;
            	        	if (state.failed) return ;
            	        	PushFollow(FOLLOW_ps_in_algoZ93);
            	        	p = ps();
            	        	state.followingStackPointer--;
            	        	if (state.failed) return ;

            	        }
            	        break;

            	}

            	d=(IToken)Match(input,10,FOLLOW_10_in_algoZ102); if (state.failed) return ;
            	PushFollow(FOLLOW_lisIngnore_in_algoZ106);
            	lisIngnore();
            	state.followingStackPointer--;
            	if (state.failed) return ;
            	e=(IToken)Match(input,11,FOLLOW_11_in_algoZ110); if (state.failed) return ;
            	if ( state.backtracking == 0 ) 
            	{
            	  	  
            	  	 BaseProgramme baseProgramme = new BaseProgramme(((st != null) ? ((IToken)st.Start) : null) ,e,d,p);
            	  	 try{
            	  	 	ListProgram.Add("$", baseProgramme);
            	  	 }catch (ArgumentException ae){
            	  	 }
            	  	
            	}
            	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:38:3: ( ';' )?
            	int alt2 = 2;
            	int LA2_0 = input.LA(1);

            	if ( (LA2_0 == 12) )
            	{
            	    alt2 = 1;
            	}
            	switch (alt2) 
            	{
            	    case 1 :
            	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:38:4: ';'
            	        {
            	        	Match(input,12,FOLLOW_12_in_algoZ119); if (state.failed) return ;

            	        }
            	        break;

            	}

            	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:38:10: ( (f= fon | a= act ) ( ';' )? )*
            	do 
            	{
            	    int alt5 = 2;
            	    int LA5_0 = input.LA(1);

            	    if ( (LA5_0 == 13 || LA5_0 == 16) )
            	    {
            	        alt5 = 1;
            	    }


            	    switch (alt5) 
            		{
            			case 1 :
            			    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:38:12: (f= fon | a= act ) ( ';' )?
            			    {
            			    	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:38:12: (f= fon | a= act )
            			    	int alt3 = 2;
            			    	int LA3_0 = input.LA(1);

            			    	if ( (LA3_0 == 16) )
            			    	{
            			    	    alt3 = 1;
            			    	}
            			    	else if ( (LA3_0 == 13) )
            			    	{
            			    	    alt3 = 2;
            			    	}
            			    	else 
            			    	{
            			    	    if ( state.backtracking > 0 ) {state.failed = true; return ;}
            			    	    NoViableAltException nvae_d3s0 =
            			    	        new NoViableAltException("", 3, 0, input);

            			    	    throw nvae_d3s0;
            			    	}
            			    	switch (alt3) 
            			    	{
            			    	    case 1 :
            			    	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:38:14: f= fon
            			    	        {
            			    	        	PushFollow(FOLLOW_fon_in_algoZ129);
            			    	        	fon();
            			    	        	state.followingStackPointer--;
            			    	        	if (state.failed) return ;

            			    	        }
            			    	        break;
            			    	    case 2 :
            			    	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:38:23: a= act
            			    	        {
            			    	        	PushFollow(FOLLOW_act_in_algoZ136);
            			    	        	act();
            			    	        	state.followingStackPointer--;
            			    	        	if (state.failed) return ;

            			    	        }
            			    	        break;

            			    	}

            			    	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:38:30: ( ';' )?
            			    	int alt4 = 2;
            			    	int LA4_0 = input.LA(1);

            			    	if ( (LA4_0 == 12) )
            			    	{
            			    	    alt4 = 1;
            			    	}
            			    	switch (alt4) 
            			    	{
            			    	    case 1 :
            			    	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:38:31: ';'
            			    	        {
            			    	        	Match(input,12,FOLLOW_12_in_algoZ140); if (state.failed) return ;

            			    	        }
            			    	        break;

            			    	}


            			    }
            			    break;

            			default:
            			    goto loop5;
            	    }
            	} while (true);

            	loop5:
            		;	// Stops C# compiler whining that label 'loop5' has no statements


            }

        }
        catch (RecognitionException re) 
    	{
            ReportError(re);
            Recover(input,re);
        }
        finally 
    	{
        }
        return ;
    }
    // $ANTLR end "algoZ"


    // $ANTLR start "act"
    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:41:1: act : a= 'action' id= ID ( '(' i= li ')' )? ( ';' )? ( soit p= ps )? d= 'debut' l= lisIngnore e= 'fin' ;
    public void act() // throws RecognitionException [1]
    {   
        IToken a = null;
        IToken id = null;
        IToken d = null;
        IToken e = null;
        List<VariableDeclare> i = default(List<VariableDeclare>);

        List<VariableDeclare> p = default(List<VariableDeclare>);


        try 
    	{
            // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:42:2: (a= 'action' id= ID ( '(' i= li ')' )? ( ';' )? ( soit p= ps )? d= 'debut' l= lisIngnore e= 'fin' )
            // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:42:4: a= 'action' id= ID ( '(' i= li ')' )? ( ';' )? ( soit p= ps )? d= 'debut' l= lisIngnore e= 'fin'
            {
            	a=(IToken)Match(input,13,FOLLOW_13_in_act162); if (state.failed) return ;
            	id=(IToken)Match(input,ID,FOLLOW_ID_in_act166); if (state.failed) return ;
            	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:42:22: ( '(' i= li ')' )?
            	int alt6 = 2;
            	int LA6_0 = input.LA(1);

            	if ( (LA6_0 == 14) )
            	{
            	    alt6 = 1;
            	}
            	switch (alt6) 
            	{
            	    case 1 :
            	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:42:24: '(' i= li ')'
            	        {
            	        	Match(input,14,FOLLOW_14_in_act171); if (state.failed) return ;
            	        	PushFollow(FOLLOW_li_in_act175);
            	        	i = li();
            	        	state.followingStackPointer--;
            	        	if (state.failed) return ;
            	        	Match(input,15,FOLLOW_15_in_act177); if (state.failed) return ;

            	        }
            	        break;

            	}

            	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:42:40: ( ';' )?
            	int alt7 = 2;
            	int LA7_0 = input.LA(1);

            	if ( (LA7_0 == 12) )
            	{
            	    alt7 = 1;
            	}
            	switch (alt7) 
            	{
            	    case 1 :
            	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:42:41: ';'
            	        {
            	        	Match(input,12,FOLLOW_12_in_act183); if (state.failed) return ;

            	        }
            	        break;

            	}

            	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:42:47: ( soit p= ps )?
            	int alt8 = 2;
            	int LA8_0 = input.LA(1);

            	if ( ((LA8_0 >= 101 && LA8_0 <= 102)) )
            	{
            	    alt8 = 1;
            	}
            	switch (alt8) 
            	{
            	    case 1 :
            	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:42:48: soit p= ps
            	        {
            	        	PushFollow(FOLLOW_soit_in_act188);
            	        	soit();
            	        	state.followingStackPointer--;
            	        	if (state.failed) return ;
            	        	PushFollow(FOLLOW_ps_in_act192);
            	        	p = ps();
            	        	state.followingStackPointer--;
            	        	if (state.failed) return ;

            	        }
            	        break;

            	}

            	d=(IToken)Match(input,10,FOLLOW_10_in_act199); if (state.failed) return ;
            	PushFollow(FOLLOW_lisIngnore_in_act203);
            	lisIngnore();
            	state.followingStackPointer--;
            	if (state.failed) return ;
            	e=(IToken)Match(input,11,FOLLOW_11_in_act207); if (state.failed) return ;
            	if ( state.backtracking == 0 ) 
            	{

            	  	 ActionToken actionToken = new ActionToken(a,e,id,d,p);
            	  	 try{
            	  	 	ListProgram.Add(((id != null) ? id.Text : null), actionToken);
            	  	 }catch (ArgumentException ae){
            	  	 }
            	  	
            	}

            }

        }
        catch (RecognitionException re) 
    	{
            ReportError(re);
            Recover(input,re);
        }
        finally 
    	{
        }
        return ;
    }
    // $ANTLR end "act"


    // $ANTLR start "fon"
    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:52:1: fon : f= 'fonction' id= ID '(' i= li ')' ':' ta= typ ( soit p= ps )? d= 'debut' l= lisIngnore e= 'fin' ;
    public void fon() // throws RecognitionException [1]
    {   
        IToken f = null;
        IToken id = null;
        IToken d = null;
        IToken e = null;
        List<VariableDeclare> i = default(List<VariableDeclare>);

        GrammaireZParser.typ_return ta = default(GrammaireZParser.typ_return);

        List<VariableDeclare> p = default(List<VariableDeclare>);


        try 
    	{
            // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:53:2: (f= 'fonction' id= ID '(' i= li ')' ':' ta= typ ( soit p= ps )? d= 'debut' l= lisIngnore e= 'fin' )
            // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:53:4: f= 'fonction' id= ID '(' i= li ')' ':' ta= typ ( soit p= ps )? d= 'debut' l= lisIngnore e= 'fin'
            {
            	f=(IToken)Match(input,16,FOLLOW_16_in_fon226); if (state.failed) return ;
            	id=(IToken)Match(input,ID,FOLLOW_ID_in_fon230); if (state.failed) return ;
            	Match(input,14,FOLLOW_14_in_fon232); if (state.failed) return ;
            	PushFollow(FOLLOW_li_in_fon236);
            	i = li();
            	state.followingStackPointer--;
            	if (state.failed) return ;
            	Match(input,15,FOLLOW_15_in_fon238); if (state.failed) return ;
            	Match(input,17,FOLLOW_17_in_fon240); if (state.failed) return ;
            	PushFollow(FOLLOW_typ_in_fon244);
            	ta = typ();
            	state.followingStackPointer--;
            	if (state.failed) return ;
            	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:53:47: ( soit p= ps )?
            	int alt9 = 2;
            	int LA9_0 = input.LA(1);

            	if ( ((LA9_0 >= 101 && LA9_0 <= 102)) )
            	{
            	    alt9 = 1;
            	}
            	switch (alt9) 
            	{
            	    case 1 :
            	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:53:49: soit p= ps
            	        {
            	        	PushFollow(FOLLOW_soit_in_fon248);
            	        	soit();
            	        	state.followingStackPointer--;
            	        	if (state.failed) return ;
            	        	PushFollow(FOLLOW_ps_in_fon252);
            	        	p = ps();
            	        	state.followingStackPointer--;
            	        	if (state.failed) return ;

            	        }
            	        break;

            	}

            	d=(IToken)Match(input,10,FOLLOW_10_in_fon259); if (state.failed) return ;
            	PushFollow(FOLLOW_lisIngnore_in_fon263);
            	lisIngnore();
            	state.followingStackPointer--;
            	if (state.failed) return ;
            	e=(IToken)Match(input,11,FOLLOW_11_in_fon267); if (state.failed) return ;
            	if ( state.backtracking == 0 ) 
            	{

            	  	 FonctionToken fonctionToken = new FonctionToken(f,e,id,((ta != null) ? input.ToString((IToken)(ta.Start),(IToken)(ta.Stop)) : null),d,p);
            	  	 try{
            	  	 	ListProgram.Add(((id != null) ? id.Text : null), fonctionToken);
            	  	 }catch (ArgumentException ae){
            	  	 }	 
            	  	
            	}

            }

        }
        catch (RecognitionException re) 
    	{
            ReportError(re);
            Recover(input,re);
        }
        finally 
    	{
        }
        return ;
    }
    // $ANTLR end "fon"


    // $ANTLR start "lisIngnore"
    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:63:1: lisIngnore : (~ ( 'fin' ) )* ;
    public void lisIngnore() // throws RecognitionException [1]
    {   
        try 
    	{
            // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:64:2: ( (~ ( 'fin' ) )* )
            // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:64:4: (~ ( 'fin' ) )*
            {
            	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:64:4: (~ ( 'fin' ) )*
            	do 
            	{
            	    int alt10 = 2;
            	    int LA10_0 = input.LA(1);

            	    if ( ((LA10_0 >= ID && LA10_0 <= 10) || (LA10_0 >= 12 && LA10_0 <= 102)) )
            	    {
            	        alt10 = 1;
            	    }


            	    switch (alt10) 
            		{
            			case 1 :
            			    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:64:5: ~ ( 'fin' )
            			    {
            			    	if ( (input.LA(1) >= ID && input.LA(1) <= 10) || (input.LA(1) >= 12 && input.LA(1) <= 102) ) 
            			    	{
            			    	    input.Consume();
            			    	    state.errorRecovery = false;state.failed = false;
            			    	}
            			    	else 
            			    	{
            			    	    if ( state.backtracking > 0 ) {state.failed = true; return ;}
            			    	    MismatchedSetException mse = new MismatchedSetException(null,input);
            			    	    throw mse;
            			    	}


            			    }
            			    break;

            			default:
            			    goto loop10;
            	    }
            	} while (true);

            	loop10:
            		;	// Stops C# compiler whining that label 'loop10' has no statements


            }

        }
        catch (RecognitionException re) 
    	{
            ReportError(re);
            Recover(input,re);
        }
        finally 
    	{
        }
        return ;
    }
    // $ANTLR end "lisIngnore"


    // $ANTLR start "ps"
    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:67:1: ps returns [List<VariableDeclare> Vars=new List<VariableDeclare>()] : s1= s ';' ( ( soit )? s2= s ';' )* ;
    public List<VariableDeclare> ps() // throws RecognitionException [1]
    {   
        List<VariableDeclare> Vars = new List<VariableDeclare>();

        GrammaireZParser.s_return s1 = default(GrammaireZParser.s_return);

        GrammaireZParser.s_return s2 = default(GrammaireZParser.s_return);


        try 
    	{
            // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:68:2: (s1= s ';' ( ( soit )? s2= s ';' )* )
            // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:68:4: s1= s ';' ( ( soit )? s2= s ';' )*
            {
            	PushFollow(FOLLOW_s_in_ps313);
            	s1 = s();
            	state.followingStackPointer--;
            	if (state.failed) return Vars;
            	if ( state.backtracking == 0 ) 
            	{
            	  Vars.AddRange(((s1 != null) ? s1.IDs : default(List<VariableDeclare>)));
            	}
            	Match(input,12,FOLLOW_12_in_ps317); if (state.failed) return Vars;
            	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:68:40: ( ( soit )? s2= s ';' )*
            	do 
            	{
            	    int alt12 = 2;
            	    int LA12_0 = input.LA(1);

            	    if ( (LA12_0 == ID || (LA12_0 >= 101 && LA12_0 <= 102)) )
            	    {
            	        alt12 = 1;
            	    }


            	    switch (alt12) 
            		{
            			case 1 :
            			    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:68:42: ( soit )? s2= s ';'
            			    {
            			    	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:68:42: ( soit )?
            			    	int alt11 = 2;
            			    	int LA11_0 = input.LA(1);

            			    	if ( ((LA11_0 >= 101 && LA11_0 <= 102)) )
            			    	{
            			    	    alt11 = 1;
            			    	}
            			    	switch (alt11) 
            			    	{
            			    	    case 1 :
            			    	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:0:0: soit
            			    	        {
            			    	        	PushFollow(FOLLOW_soit_in_ps321);
            			    	        	soit();
            			    	        	state.followingStackPointer--;
            			    	        	if (state.failed) return Vars;

            			    	        }
            			    	        break;

            			    	}

            			    	PushFollow(FOLLOW_s_in_ps326);
            			    	s2 = s();
            			    	state.followingStackPointer--;
            			    	if (state.failed) return Vars;
            			    	if ( state.backtracking == 0 ) 
            			    	{
            			    	  Vars.AddRange(((s2 != null) ? s2.IDs : default(List<VariableDeclare>)));
            			    	}
            			    	Match(input,12,FOLLOW_12_in_ps330); if (state.failed) return Vars;

            			    }
            			    break;

            			default:
            			    goto loop12;
            	    }
            	} while (true);

            	loop12:
            		;	// Stops C# compiler whining that label 'loop12' has no statements


            }

        }
        catch (RecognitionException re) 
    	{
            ReportError(re);
            Recover(input,re);
        }
        finally 
    	{
        }
        return Vars;
    }
    // $ANTLR end "ps"

    public class s_return : ParserRuleReturnScope
    {
        public List<VariableDeclare> IDs=new List<VariableDeclare>();
        public string type;
    };

    // $ANTLR start "s"
    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:71:1: s returns [List<VariableDeclare> IDs=new List<VariableDeclare>(), string type] : li sep (t1= typ | (a1= 'action' | f1= 'fonction' '(' t2= typ ')' ) ) ;
    public GrammaireZParser.s_return s() // throws RecognitionException [1]
    {   
        GrammaireZParser.s_return retval = new GrammaireZParser.s_return();
        retval.Start = input.LT(1);

        IToken a1 = null;
        IToken f1 = null;
        GrammaireZParser.typ_return t1 = default(GrammaireZParser.typ_return);

        GrammaireZParser.typ_return t2 = default(GrammaireZParser.typ_return);

        List<VariableDeclare> li1 = default(List<VariableDeclare>);


        try 
    	{
            // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:72:2: ( li sep (t1= typ | (a1= 'action' | f1= 'fonction' '(' t2= typ ')' ) ) )
            // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:72:4: li sep (t1= typ | (a1= 'action' | f1= 'fonction' '(' t2= typ ')' ) )
            {
            	PushFollow(FOLLOW_li_in_s352);
            	li1 = li();
            	state.followingStackPointer--;
            	if (state.failed) return retval;
            	PushFollow(FOLLOW_sep_in_s354);
            	sep();
            	state.followingStackPointer--;
            	if (state.failed) return retval;
            	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:72:11: (t1= typ | (a1= 'action' | f1= 'fonction' '(' t2= typ ')' ) )
            	int alt14 = 2;
            	int LA14_0 = input.LA(1);

            	if ( (LA14_0 == 14 || (LA14_0 >= 19 && LA14_0 <= 21) || (LA14_0 >= 23 && LA14_0 <= 24) || LA14_0 == 31 || (LA14_0 >= 97 && LA14_0 <= 100)) )
            	{
            	    alt14 = 1;
            	}
            	else if ( (LA14_0 == 13 || LA14_0 == 16) )
            	{
            	    alt14 = 2;
            	}
            	else 
            	{
            	    if ( state.backtracking > 0 ) {state.failed = true; return retval;}
            	    NoViableAltException nvae_d14s0 =
            	        new NoViableAltException("", 14, 0, input);

            	    throw nvae_d14s0;
            	}
            	switch (alt14) 
            	{
            	    case 1 :
            	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:72:12: t1= typ
            	        {
            	        	PushFollow(FOLLOW_typ_in_s359);
            	        	t1 = typ();
            	        	state.followingStackPointer--;
            	        	if (state.failed) return retval;

            	        }
            	        break;
            	    case 2 :
            	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:72:21: (a1= 'action' | f1= 'fonction' '(' t2= typ ')' )
            	        {
            	        	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:72:21: (a1= 'action' | f1= 'fonction' '(' t2= typ ')' )
            	        	int alt13 = 2;
            	        	int LA13_0 = input.LA(1);

            	        	if ( (LA13_0 == 13) )
            	        	{
            	        	    alt13 = 1;
            	        	}
            	        	else if ( (LA13_0 == 16) )
            	        	{
            	        	    alt13 = 2;
            	        	}
            	        	else 
            	        	{
            	        	    if ( state.backtracking > 0 ) {state.failed = true; return retval;}
            	        	    NoViableAltException nvae_d13s0 =
            	        	        new NoViableAltException("", 13, 0, input);

            	        	    throw nvae_d13s0;
            	        	}
            	        	switch (alt13) 
            	        	{
            	        	    case 1 :
            	        	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:72:22: a1= 'action'
            	        	        {
            	        	        	a1=(IToken)Match(input,13,FOLLOW_13_in_s366); if (state.failed) return retval;

            	        	        }
            	        	        break;
            	        	    case 2 :
            	        	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:72:34: f1= 'fonction' '(' t2= typ ')'
            	        	        {
            	        	        	f1=(IToken)Match(input,16,FOLLOW_16_in_s370); if (state.failed) return retval;
            	        	        	Match(input,14,FOLLOW_14_in_s372); if (state.failed) return retval;
            	        	        	PushFollow(FOLLOW_typ_in_s376);
            	        	        	t2 = typ();
            	        	        	state.followingStackPointer--;
            	        	        	if (state.failed) return retval;
            	        	        	Match(input,15,FOLLOW_15_in_s378); if (state.failed) return retval;

            	        	        }
            	        	        break;

            	        	}


            	        }
            	        break;

            	}

            	if ( state.backtracking == 0 ) 
            	{

            	  	   retval.IDs = li1; 
            	  	   string ty=((t1 != null) ? input.ToString((IToken)(t1.Start),(IToken)(t1.Stop)) : null)+((a1 != null) ? a1.Text : null)+((f1 != null) ? f1.Text : null)+(t2!=null?"("+((t2 != null) ? input.ToString((IToken)(t2.Start),(IToken)(t2.Stop)) : null)+")":null);
            	  	   foreach(VariableDeclare vd in li1)
            	  	   	vd.Type=ty;
            	  	   retval.type = ty;
            	  	  
            	}

            }

            retval.Stop = input.LT(-1);

        }
        catch (RecognitionException re) 
    	{
            ReportError(re);
            Recover(input,re);
        }
        finally 
    	{
        }
        return retval;
    }
    // $ANTLR end "s"


    // $ANTLR start "li"
    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:82:1: li returns [List<VariableDeclare> IDs=new List<VariableDeclare>()] : i1= ID ( ',' i2= ID )* ;
    public List<VariableDeclare> li() // throws RecognitionException [1]
    {   
        List<VariableDeclare> IDs = new List<VariableDeclare>();

        IToken i1 = null;
        IToken i2 = null;

        try 
    	{
            // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:83:2: (i1= ID ( ',' i2= ID )* )
            // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:83:4: i1= ID ( ',' i2= ID )*
            {
            	i1=(IToken)Match(input,ID,FOLLOW_ID_in_li408); if (state.failed) return IDs;
            	if ( state.backtracking == 0 ) 
            	{
            	  IDs.Add(new VariableDeclare(i1));
            	}
            	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:83:47: ( ',' i2= ID )*
            	do 
            	{
            	    int alt15 = 2;
            	    int LA15_0 = input.LA(1);

            	    if ( (LA15_0 == 18) )
            	    {
            	        alt15 = 1;
            	    }


            	    switch (alt15) 
            		{
            			case 1 :
            			    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:83:49: ',' i2= ID
            			    {
            			    	Match(input,18,FOLLOW_18_in_li415); if (state.failed) return IDs;
            			    	i2=(IToken)Match(input,ID,FOLLOW_ID_in_li419); if (state.failed) return IDs;
            			    	if ( state.backtracking == 0 ) 
            			    	{
            			    	  IDs.Add(new VariableDeclare(i2));
            			    	}

            			    }
            			    break;

            			default:
            			    goto loop15;
            	    }
            	} while (true);

            	loop15:
            		;	// Stops C# compiler whining that label 'loop15' has no statements


            }

        }
        catch (RecognitionException re) 
    	{
            ReportError(re);
            Recover(input,re);
        }
        finally 
    	{
        }
        return IDs;
    }
    // $ANTLR end "li"

    public class typ_return : ParserRuleReturnScope
    {
    };

    // $ANTLR start "typ"
    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:86:1: typ : ( types | 'machine_car' | 'machine_nombre' | structure | ( 'pointeur' 'vers' ( sep )? )? ( 'liste' | 'listes' ) ( 'de' ( ( types | structure ) | 'tableau' '(' lc ')' ( 'de' ( structure | types ) )? | 'fichier' 'de' ( types | 'vecteur' '(' CSTE ')' 'de' ( types | structure ) ) 'buffer' li ( 'entete' )? '(' types ( ',' types )* ')' ) )? );
    public GrammaireZParser.typ_return typ() // throws RecognitionException [1]
    {   
        GrammaireZParser.typ_return retval = new GrammaireZParser.typ_return();
        retval.Start = input.LT(1);

        try 
    	{
            // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:87:2: ( types | 'machine_car' | 'machine_nombre' | structure | ( 'pointeur' 'vers' ( sep )? )? ( 'liste' | 'listes' ) ( 'de' ( ( types | structure ) | 'tableau' '(' lc ')' ( 'de' ( structure | types ) )? | 'fichier' 'de' ( types | 'vecteur' '(' CSTE ')' 'de' ( types | structure ) ) 'buffer' li ( 'entete' )? '(' types ( ',' types )* ')' ) )? )
            int alt27 = 5;
            switch ( input.LA(1) ) 
            {
            case 97:
            case 98:
            case 99:
            case 100:
            	{
                alt27 = 1;
                }
                break;
            case 19:
            	{
                alt27 = 2;
                }
                break;
            case 20:
            	{
                alt27 = 3;
                }
                break;
            case 14:
            case 31:
            	{
                alt27 = 4;
                }
                break;
            case 21:
            case 23:
            case 24:
            	{
                alt27 = 5;
                }
                break;
            	default:
            	    if ( state.backtracking > 0 ) {state.failed = true; return retval;}
            	    NoViableAltException nvae_d27s0 =
            	        new NoViableAltException("", 27, 0, input);

            	    throw nvae_d27s0;
            }

            switch (alt27) 
            {
                case 1 :
                    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:87:4: types
                    {
                    	PushFollow(FOLLOW_types_in_typ439);
                    	types();
                    	state.followingStackPointer--;
                    	if (state.failed) return retval;

                    }
                    break;
                case 2 :
                    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:88:4: 'machine_car'
                    {
                    	Match(input,19,FOLLOW_19_in_typ444); if (state.failed) return retval;

                    }
                    break;
                case 3 :
                    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:89:4: 'machine_nombre'
                    {
                    	Match(input,20,FOLLOW_20_in_typ450); if (state.failed) return retval;

                    }
                    break;
                case 4 :
                    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:90:4: structure
                    {
                    	PushFollow(FOLLOW_structure_in_typ456);
                    	structure();
                    	state.followingStackPointer--;
                    	if (state.failed) return retval;

                    }
                    break;
                case 5 :
                    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:91:4: ( 'pointeur' 'vers' ( sep )? )? ( 'liste' | 'listes' ) ( 'de' ( ( types | structure ) | 'tableau' '(' lc ')' ( 'de' ( structure | types ) )? | 'fichier' 'de' ( types | 'vecteur' '(' CSTE ')' 'de' ( types | structure ) ) 'buffer' li ( 'entete' )? '(' types ( ',' types )* ')' ) )?
                    {
                    	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:91:4: ( 'pointeur' 'vers' ( sep )? )?
                    	int alt17 = 2;
                    	int LA17_0 = input.LA(1);

                    	if ( (LA17_0 == 21) )
                    	{
                    	    alt17 = 1;
                    	}
                    	switch (alt17) 
                    	{
                    	    case 1 :
                    	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:91:5: 'pointeur' 'vers' ( sep )?
                    	        {
                    	        	Match(input,21,FOLLOW_21_in_typ463); if (state.failed) return retval;
                    	        	Match(input,22,FOLLOW_22_in_typ465); if (state.failed) return retval;
                    	        	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:91:23: ( sep )?
                    	        	int alt16 = 2;
                    	        	int LA16_0 = input.LA(1);

                    	        	if ( (LA16_0 == 17 || (LA16_0 >= 94 && LA16_0 <= 96)) )
                    	        	{
                    	        	    alt16 = 1;
                    	        	}
                    	        	switch (alt16) 
                    	        	{
                    	        	    case 1 :
                    	        	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:0:0: sep
                    	        	        {
                    	        	        	PushFollow(FOLLOW_sep_in_typ467);
                    	        	        	sep();
                    	        	        	state.followingStackPointer--;
                    	        	        	if (state.failed) return retval;

                    	        	        }
                    	        	        break;

                    	        	}


                    	        }
                    	        break;

                    	}

                    	if ( (input.LA(1) >= 23 && input.LA(1) <= 24) ) 
                    	{
                    	    input.Consume();
                    	    state.errorRecovery = false;state.failed = false;
                    	}
                    	else 
                    	{
                    	    if ( state.backtracking > 0 ) {state.failed = true; return retval;}
                    	    MismatchedSetException mse = new MismatchedSetException(null,input);
                    	    throw mse;
                    	}

                    	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:91:50: ( 'de' ( ( types | structure ) | 'tableau' '(' lc ')' ( 'de' ( structure | types ) )? | 'fichier' 'de' ( types | 'vecteur' '(' CSTE ')' 'de' ( types | structure ) ) 'buffer' li ( 'entete' )? '(' types ( ',' types )* ')' ) )?
                    	int alt26 = 2;
                    	int LA26_0 = input.LA(1);

                    	if ( (LA26_0 == 25) )
                    	{
                    	    alt26 = 1;
                    	}
                    	switch (alt26) 
                    	{
                    	    case 1 :
                    	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:91:52: 'de' ( ( types | structure ) | 'tableau' '(' lc ')' ( 'de' ( structure | types ) )? | 'fichier' 'de' ( types | 'vecteur' '(' CSTE ')' 'de' ( types | structure ) ) 'buffer' li ( 'entete' )? '(' types ( ',' types )* ')' )
                    	        {
                    	        	Match(input,25,FOLLOW_25_in_typ481); if (state.failed) return retval;
                    	        	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:91:57: ( ( types | structure ) | 'tableau' '(' lc ')' ( 'de' ( structure | types ) )? | 'fichier' 'de' ( types | 'vecteur' '(' CSTE ')' 'de' ( types | structure ) ) 'buffer' li ( 'entete' )? '(' types ( ',' types )* ')' )
                    	        	int alt25 = 3;
                    	        	switch ( input.LA(1) ) 
                    	        	{
                    	        	case 14:
                    	        	case 31:
                    	        	case 97:
                    	        	case 98:
                    	        	case 99:
                    	        	case 100:
                    	        		{
                    	        	    alt25 = 1;
                    	        	    }
                    	        	    break;
                    	        	case 26:
                    	        		{
                    	        	    alt25 = 2;
                    	        	    }
                    	        	    break;
                    	        	case 27:
                    	        		{
                    	        	    alt25 = 3;
                    	        	    }
                    	        	    break;
                    	        		default:
                    	        		    if ( state.backtracking > 0 ) {state.failed = true; return retval;}
                    	        		    NoViableAltException nvae_d25s0 =
                    	        		        new NoViableAltException("", 25, 0, input);

                    	        		    throw nvae_d25s0;
                    	        	}

                    	        	switch (alt25) 
                    	        	{
                    	        	    case 1 :
                    	        	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:91:58: ( types | structure )
                    	        	        {
                    	        	        	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:91:58: ( types | structure )
                    	        	        	int alt18 = 2;
                    	        	        	int LA18_0 = input.LA(1);

                    	        	        	if ( ((LA18_0 >= 97 && LA18_0 <= 100)) )
                    	        	        	{
                    	        	        	    alt18 = 1;
                    	        	        	}
                    	        	        	else if ( (LA18_0 == 14 || LA18_0 == 31) )
                    	        	        	{
                    	        	        	    alt18 = 2;
                    	        	        	}
                    	        	        	else 
                    	        	        	{
                    	        	        	    if ( state.backtracking > 0 ) {state.failed = true; return retval;}
                    	        	        	    NoViableAltException nvae_d18s0 =
                    	        	        	        new NoViableAltException("", 18, 0, input);

                    	        	        	    throw nvae_d18s0;
                    	        	        	}
                    	        	        	switch (alt18) 
                    	        	        	{
                    	        	        	    case 1 :
                    	        	        	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:91:59: types
                    	        	        	        {
                    	        	        	        	PushFollow(FOLLOW_types_in_typ485);
                    	        	        	        	types();
                    	        	        	        	state.followingStackPointer--;
                    	        	        	        	if (state.failed) return retval;

                    	        	        	        }
                    	        	        	        break;
                    	        	        	    case 2 :
                    	        	        	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:91:67: structure
                    	        	        	        {
                    	        	        	        	PushFollow(FOLLOW_structure_in_typ489);
                    	        	        	        	structure();
                    	        	        	        	state.followingStackPointer--;
                    	        	        	        	if (state.failed) return retval;

                    	        	        	        }
                    	        	        	        break;

                    	        	        	}


                    	        	        }
                    	        	        break;
                    	        	    case 2 :
                    	        	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:91:80: 'tableau' '(' lc ')' ( 'de' ( structure | types ) )?
                    	        	        {
                    	        	        	Match(input,26,FOLLOW_26_in_typ494); if (state.failed) return retval;
                    	        	        	Match(input,14,FOLLOW_14_in_typ496); if (state.failed) return retval;
                    	        	        	PushFollow(FOLLOW_lc_in_typ498);
                    	        	        	lc();
                    	        	        	state.followingStackPointer--;
                    	        	        	if (state.failed) return retval;
                    	        	        	Match(input,15,FOLLOW_15_in_typ500); if (state.failed) return retval;
                    	        	        	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:91:101: ( 'de' ( structure | types ) )?
                    	        	        	int alt20 = 2;
                    	        	        	int LA20_0 = input.LA(1);

                    	        	        	if ( (LA20_0 == 25) )
                    	        	        	{
                    	        	        	    alt20 = 1;
                    	        	        	}
                    	        	        	switch (alt20) 
                    	        	        	{
                    	        	        	    case 1 :
                    	        	        	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:91:102: 'de' ( structure | types )
                    	        	        	        {
                    	        	        	        	Match(input,25,FOLLOW_25_in_typ503); if (state.failed) return retval;
                    	        	        	        	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:91:106: ( structure | types )
                    	        	        	        	int alt19 = 2;
                    	        	        	        	int LA19_0 = input.LA(1);

                    	        	        	        	if ( (LA19_0 == 14 || LA19_0 == 31) )
                    	        	        	        	{
                    	        	        	        	    alt19 = 1;
                    	        	        	        	}
                    	        	        	        	else if ( ((LA19_0 >= 97 && LA19_0 <= 100)) )
                    	        	        	        	{
                    	        	        	        	    alt19 = 2;
                    	        	        	        	}
                    	        	        	        	else 
                    	        	        	        	{
                    	        	        	        	    if ( state.backtracking > 0 ) {state.failed = true; return retval;}
                    	        	        	        	    NoViableAltException nvae_d19s0 =
                    	        	        	        	        new NoViableAltException("", 19, 0, input);

                    	        	        	        	    throw nvae_d19s0;
                    	        	        	        	}
                    	        	        	        	switch (alt19) 
                    	        	        	        	{
                    	        	        	        	    case 1 :
                    	        	        	        	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:91:107: structure
                    	        	        	        	        {
                    	        	        	        	        	PushFollow(FOLLOW_structure_in_typ505);
                    	        	        	        	        	structure();
                    	        	        	        	        	state.followingStackPointer--;
                    	        	        	        	        	if (state.failed) return retval;

                    	        	        	        	        }
                    	        	        	        	        break;
                    	        	        	        	    case 2 :
                    	        	        	        	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:91:119: types
                    	        	        	        	        {
                    	        	        	        	        	PushFollow(FOLLOW_types_in_typ509);
                    	        	        	        	        	types();
                    	        	        	        	        	state.followingStackPointer--;
                    	        	        	        	        	if (state.failed) return retval;

                    	        	        	        	        }
                    	        	        	        	        break;

                    	        	        	        	}


                    	        	        	        }
                    	        	        	        break;

                    	        	        	}


                    	        	        }
                    	        	        break;
                    	        	    case 3 :
                    	        	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:91:131: 'fichier' 'de' ( types | 'vecteur' '(' CSTE ')' 'de' ( types | structure ) ) 'buffer' li ( 'entete' )? '(' types ( ',' types )* ')'
                    	        	        {
                    	        	        	Match(input,27,FOLLOW_27_in_typ517); if (state.failed) return retval;
                    	        	        	Match(input,25,FOLLOW_25_in_typ519); if (state.failed) return retval;
                    	        	        	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:91:146: ( types | 'vecteur' '(' CSTE ')' 'de' ( types | structure ) )
                    	        	        	int alt22 = 2;
                    	        	        	int LA22_0 = input.LA(1);

                    	        	        	if ( ((LA22_0 >= 97 && LA22_0 <= 100)) )
                    	        	        	{
                    	        	        	    alt22 = 1;
                    	        	        	}
                    	        	        	else if ( (LA22_0 == 28) )
                    	        	        	{
                    	        	        	    alt22 = 2;
                    	        	        	}
                    	        	        	else 
                    	        	        	{
                    	        	        	    if ( state.backtracking > 0 ) {state.failed = true; return retval;}
                    	        	        	    NoViableAltException nvae_d22s0 =
                    	        	        	        new NoViableAltException("", 22, 0, input);

                    	        	        	    throw nvae_d22s0;
                    	        	        	}
                    	        	        	switch (alt22) 
                    	        	        	{
                    	        	        	    case 1 :
                    	        	        	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:91:148: types
                    	        	        	        {
                    	        	        	        	PushFollow(FOLLOW_types_in_typ523);
                    	        	        	        	types();
                    	        	        	        	state.followingStackPointer--;
                    	        	        	        	if (state.failed) return retval;

                    	        	        	        }
                    	        	        	        break;
                    	        	        	    case 2 :
                    	        	        	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:91:156: 'vecteur' '(' CSTE ')' 'de' ( types | structure )
                    	        	        	        {
                    	        	        	        	Match(input,28,FOLLOW_28_in_typ527); if (state.failed) return retval;
                    	        	        	        	Match(input,14,FOLLOW_14_in_typ529); if (state.failed) return retval;
                    	        	        	        	Match(input,CSTE,FOLLOW_CSTE_in_typ531); if (state.failed) return retval;
                    	        	        	        	Match(input,15,FOLLOW_15_in_typ533); if (state.failed) return retval;
                    	        	        	        	Match(input,25,FOLLOW_25_in_typ535); if (state.failed) return retval;
                    	        	        	        	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:91:184: ( types | structure )
                    	        	        	        	int alt21 = 2;
                    	        	        	        	int LA21_0 = input.LA(1);

                    	        	        	        	if ( ((LA21_0 >= 97 && LA21_0 <= 100)) )
                    	        	        	        	{
                    	        	        	        	    alt21 = 1;
                    	        	        	        	}
                    	        	        	        	else if ( (LA21_0 == 14 || LA21_0 == 31) )
                    	        	        	        	{
                    	        	        	        	    alt21 = 2;
                    	        	        	        	}
                    	        	        	        	else 
                    	        	        	        	{
                    	        	        	        	    if ( state.backtracking > 0 ) {state.failed = true; return retval;}
                    	        	        	        	    NoViableAltException nvae_d21s0 =
                    	        	        	        	        new NoViableAltException("", 21, 0, input);

                    	        	        	        	    throw nvae_d21s0;
                    	        	        	        	}
                    	        	        	        	switch (alt21) 
                    	        	        	        	{
                    	        	        	        	    case 1 :
                    	        	        	        	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:91:185: types
                    	        	        	        	        {
                    	        	        	        	        	PushFollow(FOLLOW_types_in_typ538);
                    	        	        	        	        	types();
                    	        	        	        	        	state.followingStackPointer--;
                    	        	        	        	        	if (state.failed) return retval;

                    	        	        	        	        }
                    	        	        	        	        break;
                    	        	        	        	    case 2 :
                    	        	        	        	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:91:194: structure
                    	        	        	        	        {
                    	        	        	        	        	PushFollow(FOLLOW_structure_in_typ543);
                    	        	        	        	        	structure();
                    	        	        	        	        	state.followingStackPointer--;
                    	        	        	        	        	if (state.failed) return retval;

                    	        	        	        	        }
                    	        	        	        	        break;

                    	        	        	        	}


                    	        	        	        }
                    	        	        	        break;

                    	        	        	}

                    	        	        	Match(input,29,FOLLOW_29_in_typ548); if (state.failed) return retval;
                    	        	        	PushFollow(FOLLOW_li_in_typ550);
                    	        	        	li();
                    	        	        	state.followingStackPointer--;
                    	        	        	if (state.failed) return retval;
                    	        	        	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:91:219: ( 'entete' )?
                    	        	        	int alt23 = 2;
                    	        	        	int LA23_0 = input.LA(1);

                    	        	        	if ( (LA23_0 == 30) )
                    	        	        	{
                    	        	        	    alt23 = 1;
                    	        	        	}
                    	        	        	switch (alt23) 
                    	        	        	{
                    	        	        	    case 1 :
                    	        	        	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:91:220: 'entete'
                    	        	        	        {
                    	        	        	        	Match(input,30,FOLLOW_30_in_typ553); if (state.failed) return retval;

                    	        	        	        }
                    	        	        	        break;

                    	        	        	}

                    	        	        	Match(input,14,FOLLOW_14_in_typ557); if (state.failed) return retval;
                    	        	        	PushFollow(FOLLOW_types_in_typ559);
                    	        	        	types();
                    	        	        	state.followingStackPointer--;
                    	        	        	if (state.failed) return retval;
                    	        	        	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:91:241: ( ',' types )*
                    	        	        	do 
                    	        	        	{
                    	        	        	    int alt24 = 2;
                    	        	        	    int LA24_0 = input.LA(1);

                    	        	        	    if ( (LA24_0 == 18) )
                    	        	        	    {
                    	        	        	        alt24 = 1;
                    	        	        	    }


                    	        	        	    switch (alt24) 
                    	        	        		{
                    	        	        			case 1 :
                    	        	        			    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:91:242: ',' types
                    	        	        			    {
                    	        	        			    	Match(input,18,FOLLOW_18_in_typ562); if (state.failed) return retval;
                    	        	        			    	PushFollow(FOLLOW_types_in_typ564);
                    	        	        			    	types();
                    	        	        			    	state.followingStackPointer--;
                    	        	        			    	if (state.failed) return retval;

                    	        	        			    }
                    	        	        			    break;

                    	        	        			default:
                    	        	        			    goto loop24;
                    	        	        	    }
                    	        	        	} while (true);

                    	        	        	loop24:
                    	        	        		;	// Stops C# compiler whining that label 'loop24' has no statements

                    	        	        	Match(input,15,FOLLOW_15_in_typ569); if (state.failed) return retval;

                    	        	        }
                    	        	        break;

                    	        	}


                    	        }
                    	        break;

                    	}


                    }
                    break;

            }
            retval.Stop = input.LT(-1);

        }
        catch (RecognitionException re) 
    	{
            ReportError(re);
            Recover(input,re);
        }
        finally 
    	{
        }
        return retval;
    }
    // $ANTLR end "typ"


    // $ANTLR start "structure"
    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:94:1: structure : ( ( ( 'structure' )? '(' ( types ) ( ',' types )* ')' )=> ( 'structure' )? '(' types ( ',' types )* ')' | ( 'structure' )? '(' ( types | 'vecteur' '(' CSTE ')' 'de' types ) ( ',' ( types | 'vecteur' '(' CSTE ')' 'de' types ) )* ')' );
    public void structure() // throws RecognitionException [1]
    {   
        try 
    	{
            // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:95:2: ( ( ( 'structure' )? '(' ( types ) ( ',' types )* ')' )=> ( 'structure' )? '(' types ( ',' types )* ')' | ( 'structure' )? '(' ( types | 'vecteur' '(' CSTE ')' 'de' types ) ( ',' ( types | 'vecteur' '(' CSTE ')' 'de' types ) )* ')' )
            int alt34 = 2;
            alt34 = dfa34.Predict(input);
            switch (alt34) 
            {
                case 1 :
                    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:95:4: ( ( 'structure' )? '(' ( types ) ( ',' types )* ')' )=> ( 'structure' )? '(' types ( ',' types )* ')'
                    {
                    	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:95:53: ( 'structure' )?
                    	int alt28 = 2;
                    	int LA28_0 = input.LA(1);

                    	if ( (LA28_0 == 31) )
                    	{
                    	    alt28 = 1;
                    	}
                    	switch (alt28) 
                    	{
                    	    case 1 :
                    	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:95:54: 'structure'
                    	        {
                    	        	Match(input,31,FOLLOW_31_in_structure609); if (state.failed) return ;

                    	        }
                    	        break;

                    	}

                    	Match(input,14,FOLLOW_14_in_structure613); if (state.failed) return ;
                    	PushFollow(FOLLOW_types_in_structure615);
                    	types();
                    	state.followingStackPointer--;
                    	if (state.failed) return ;
                    	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:95:78: ( ',' types )*
                    	do 
                    	{
                    	    int alt29 = 2;
                    	    int LA29_0 = input.LA(1);

                    	    if ( (LA29_0 == 18) )
                    	    {
                    	        alt29 = 1;
                    	    }


                    	    switch (alt29) 
                    		{
                    			case 1 :
                    			    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:95:79: ',' types
                    			    {
                    			    	Match(input,18,FOLLOW_18_in_structure618); if (state.failed) return ;
                    			    	PushFollow(FOLLOW_types_in_structure620);
                    			    	types();
                    			    	state.followingStackPointer--;
                    			    	if (state.failed) return ;

                    			    }
                    			    break;

                    			default:
                    			    goto loop29;
                    	    }
                    	} while (true);

                    	loop29:
                    		;	// Stops C# compiler whining that label 'loop29' has no statements

                    	Match(input,15,FOLLOW_15_in_structure626); if (state.failed) return ;

                    }
                    break;
                case 2 :
                    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:96:4: ( 'structure' )? '(' ( types | 'vecteur' '(' CSTE ')' 'de' types ) ( ',' ( types | 'vecteur' '(' CSTE ')' 'de' types ) )* ')'
                    {
                    	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:96:4: ( 'structure' )?
                    	int alt30 = 2;
                    	int LA30_0 = input.LA(1);

                    	if ( (LA30_0 == 31) )
                    	{
                    	    alt30 = 1;
                    	}
                    	switch (alt30) 
                    	{
                    	    case 1 :
                    	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:96:5: 'structure'
                    	        {
                    	        	Match(input,31,FOLLOW_31_in_structure634); if (state.failed) return ;

                    	        }
                    	        break;

                    	}

                    	Match(input,14,FOLLOW_14_in_structure638); if (state.failed) return ;
                    	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:96:23: ( types | 'vecteur' '(' CSTE ')' 'de' types )
                    	int alt31 = 2;
                    	int LA31_0 = input.LA(1);

                    	if ( ((LA31_0 >= 97 && LA31_0 <= 100)) )
                    	{
                    	    alt31 = 1;
                    	}
                    	else if ( (LA31_0 == 28) )
                    	{
                    	    alt31 = 2;
                    	}
                    	else 
                    	{
                    	    if ( state.backtracking > 0 ) {state.failed = true; return ;}
                    	    NoViableAltException nvae_d31s0 =
                    	        new NoViableAltException("", 31, 0, input);

                    	    throw nvae_d31s0;
                    	}
                    	switch (alt31) 
                    	{
                    	    case 1 :
                    	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:96:24: types
                    	        {
                    	        	PushFollow(FOLLOW_types_in_structure641);
                    	        	types();
                    	        	state.followingStackPointer--;
                    	        	if (state.failed) return ;

                    	        }
                    	        break;
                    	    case 2 :
                    	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:96:32: 'vecteur' '(' CSTE ')' 'de' types
                    	        {
                    	        	Match(input,28,FOLLOW_28_in_structure645); if (state.failed) return ;
                    	        	Match(input,14,FOLLOW_14_in_structure647); if (state.failed) return ;
                    	        	Match(input,CSTE,FOLLOW_CSTE_in_structure649); if (state.failed) return ;
                    	        	Match(input,15,FOLLOW_15_in_structure651); if (state.failed) return ;
                    	        	Match(input,25,FOLLOW_25_in_structure654); if (state.failed) return ;
                    	        	PushFollow(FOLLOW_types_in_structure656);
                    	        	types();
                    	        	state.followingStackPointer--;
                    	        	if (state.failed) return ;

                    	        }
                    	        break;

                    	}

                    	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:96:69: ( ',' ( types | 'vecteur' '(' CSTE ')' 'de' types ) )*
                    	do 
                    	{
                    	    int alt33 = 2;
                    	    int LA33_0 = input.LA(1);

                    	    if ( (LA33_0 == 18) )
                    	    {
                    	        alt33 = 1;
                    	    }


                    	    switch (alt33) 
                    		{
                    			case 1 :
                    			    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:96:70: ',' ( types | 'vecteur' '(' CSTE ')' 'de' types )
                    			    {
                    			    	Match(input,18,FOLLOW_18_in_structure661); if (state.failed) return ;
                    			    	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:96:74: ( types | 'vecteur' '(' CSTE ')' 'de' types )
                    			    	int alt32 = 2;
                    			    	int LA32_0 = input.LA(1);

                    			    	if ( ((LA32_0 >= 97 && LA32_0 <= 100)) )
                    			    	{
                    			    	    alt32 = 1;
                    			    	}
                    			    	else if ( (LA32_0 == 28) )
                    			    	{
                    			    	    alt32 = 2;
                    			    	}
                    			    	else 
                    			    	{
                    			    	    if ( state.backtracking > 0 ) {state.failed = true; return ;}
                    			    	    NoViableAltException nvae_d32s0 =
                    			    	        new NoViableAltException("", 32, 0, input);

                    			    	    throw nvae_d32s0;
                    			    	}
                    			    	switch (alt32) 
                    			    	{
                    			    	    case 1 :
                    			    	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:96:76: types
                    			    	        {
                    			    	        	PushFollow(FOLLOW_types_in_structure665);
                    			    	        	types();
                    			    	        	state.followingStackPointer--;
                    			    	        	if (state.failed) return ;

                    			    	        }
                    			    	        break;
                    			    	    case 2 :
                    			    	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:96:84: 'vecteur' '(' CSTE ')' 'de' types
                    			    	        {
                    			    	        	Match(input,28,FOLLOW_28_in_structure669); if (state.failed) return ;
                    			    	        	Match(input,14,FOLLOW_14_in_structure671); if (state.failed) return ;
                    			    	        	Match(input,CSTE,FOLLOW_CSTE_in_structure673); if (state.failed) return ;
                    			    	        	Match(input,15,FOLLOW_15_in_structure675); if (state.failed) return ;
                    			    	        	Match(input,25,FOLLOW_25_in_structure677); if (state.failed) return ;
                    			    	        	PushFollow(FOLLOW_types_in_structure679);
                    			    	        	types();
                    			    	        	state.followingStackPointer--;
                    			    	        	if (state.failed) return ;

                    			    	        }
                    			    	        break;

                    			    	}


                    			    }
                    			    break;

                    			default:
                    			    goto loop33;
                    	    }
                    	} while (true);

                    	loop33:
                    		;	// Stops C# compiler whining that label 'loop33' has no statements

                    	Match(input,15,FOLLOW_15_in_structure686); if (state.failed) return ;

                    }
                    break;

            }
        }
        catch (RecognitionException re) 
    	{
            ReportError(re);
            Recover(input,re);
        }
        finally 
    	{
        }
        return ;
    }
    // $ANTLR end "structure"


    // $ANTLR start "lc"
    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:99:1: lc : CSTE ( ',' CSTE )* ;
    public void lc() // throws RecognitionException [1]
    {   
        try 
    	{
            // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:100:2: ( CSTE ( ',' CSTE )* )
            // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:100:4: CSTE ( ',' CSTE )*
            {
            	Match(input,CSTE,FOLLOW_CSTE_in_lc699); if (state.failed) return ;
            	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:100:9: ( ',' CSTE )*
            	do 
            	{
            	    int alt35 = 2;
            	    int LA35_0 = input.LA(1);

            	    if ( (LA35_0 == 18) )
            	    {
            	        alt35 = 1;
            	    }


            	    switch (alt35) 
            		{
            			case 1 :
            			    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:100:10: ',' CSTE
            			    {
            			    	Match(input,18,FOLLOW_18_in_lc702); if (state.failed) return ;
            			    	Match(input,CSTE,FOLLOW_CSTE_in_lc704); if (state.failed) return ;

            			    }
            			    break;

            			default:
            			    goto loop35;
            	    }
            	} while (true);

            	loop35:
            		;	// Stops C# compiler whining that label 'loop35' has no statements


            }

        }
        catch (RecognitionException re) 
    	{
            ReportError(re);
            Recover(input,re);
        }
        finally 
    	{
        }
        return ;
    }
    // $ANTLR end "lc"


    // $ANTLR start "lis"
    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:103:1: lis : ( inst )? ( ';' inst )* ;
    public void lis() // throws RecognitionException [1]
    {   
        try 
    	{
            // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:104:2: ( ( inst )? ( ';' inst )* )
            // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:104:4: ( inst )? ( ';' inst )*
            {
            	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:104:4: ( inst )?
            	int alt36 = 2;
            	int LA36_0 = input.LA(1);

            	if ( (LA36_0 == ID || (LA36_0 >= 32 && LA36_0 <= 33) || LA36_0 == 37 || LA36_0 == 41 || (LA36_0 >= 46 && LA36_0 <= 63) || (LA36_0 >= 66 && LA36_0 <= 71)) )
            	{
            	    alt36 = 1;
            	}
            	switch (alt36) 
            	{
            	    case 1 :
            	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:0:0: inst
            	        {
            	        	PushFollow(FOLLOW_inst_in_lis719);
            	        	inst();
            	        	state.followingStackPointer--;
            	        	if (state.failed) return ;

            	        }
            	        break;

            	}

            	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:104:11: ( ';' inst )*
            	do 
            	{
            	    int alt37 = 2;
            	    int LA37_0 = input.LA(1);

            	    if ( (LA37_0 == 12) )
            	    {
            	        alt37 = 1;
            	    }


            	    switch (alt37) 
            		{
            			case 1 :
            			    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:104:13: ';' inst
            			    {
            			    	Match(input,12,FOLLOW_12_in_lis725); if (state.failed) return ;
            			    	PushFollow(FOLLOW_inst_in_lis728);
            			    	inst();
            			    	state.followingStackPointer--;
            			    	if (state.failed) return ;

            			    }
            			    break;

            			default:
            			    goto loop37;
            	    }
            	} while (true);

            	loop37:
            		;	// Stops C# compiler whining that label 'loop37' has no statements


            }

        }
        catch (RecognitionException re) 
    	{
            ReportError(re);
            Recover(input,re);
        }
        finally 
    	{
        }
        return ;
    }
    // $ANTLR end "lis"


    // $ANTLR start "inst"
    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:107:1: inst : ( ( 'tantque' | 'tq' ) exp ( ':' )? lis ( 'fintantque' | 'ftq' | 'ftantque' ) | 'si' exp ( ':' )? lis ( 'sinon' lis )? ( 'fsi' | 'finsi' ) | 'pour' ID ':=' exp ',' exp ( ',' exp )? ( ':' )? lis ( 'finpour' | 'fp' | 'fpour' ) | 'appel' ID ( '(' exp ( ',' exp )* ')' )? | 'lire' '(' ID ( ',' ID )* ')' | 'ecrire' '(' exp ( ',' exp )* ')' | ( 'liberer' | 'fllouer' | 'fermer' ) '(' exp ')' | 'ouvrir' '(' ID ',' CHAINE ',' CHAINE ')' | ( 'lirecar' | 'lirenombre' | 'lireseq' | 'ecrireseq' | 'rajouter' ) '(' ID ',' ID ')' | ( 'aff_adr' | 'aff_val' ) '(' exp ',' exp ')' | ( 'creer_liste' | 'init_vecteur' | 'creer_mnombre' | 'init_struct' ) '(' ID ',' '[' ( exp | '[' exp ( ',' exp )* ']' ) ( ',' ( exp | '[' exp ( ',' exp )* ']' ) )* ']' ')' | 'creer_mcar' '(' ID ',' '[' CHAINE ']' ')' | 'aff_element' '(' exp '[' exp ( ',' exp )* ']' ',' exp ')' | ( 'aff_struct' | 'aff_entete' ) '(' ID ',' CSTE ',' exp ')' | ( 'liredir' | 'ecriredir' ) '(' ID ',' CSTE ',' ID ')' | ID ':=' exp );
    public void inst() // throws RecognitionException [1]
    {   
        try 
    	{
            // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:108:2: ( ( 'tantque' | 'tq' ) exp ( ':' )? lis ( 'fintantque' | 'ftq' | 'ftantque' ) | 'si' exp ( ':' )? lis ( 'sinon' lis )? ( 'fsi' | 'finsi' ) | 'pour' ID ':=' exp ',' exp ( ',' exp )? ( ':' )? lis ( 'finpour' | 'fp' | 'fpour' ) | 'appel' ID ( '(' exp ( ',' exp )* ')' )? | 'lire' '(' ID ( ',' ID )* ')' | 'ecrire' '(' exp ( ',' exp )* ')' | ( 'liberer' | 'fllouer' | 'fermer' ) '(' exp ')' | 'ouvrir' '(' ID ',' CHAINE ',' CHAINE ')' | ( 'lirecar' | 'lirenombre' | 'lireseq' | 'ecrireseq' | 'rajouter' ) '(' ID ',' ID ')' | ( 'aff_adr' | 'aff_val' ) '(' exp ',' exp ')' | ( 'creer_liste' | 'init_vecteur' | 'creer_mnombre' | 'init_struct' ) '(' ID ',' '[' ( exp | '[' exp ( ',' exp )* ']' ) ( ',' ( exp | '[' exp ( ',' exp )* ']' ) )* ']' ')' | 'creer_mcar' '(' ID ',' '[' CHAINE ']' ')' | 'aff_element' '(' exp '[' exp ( ',' exp )* ']' ',' exp ')' | ( 'aff_struct' | 'aff_entete' ) '(' ID ',' CSTE ',' exp ')' | ( 'liredir' | 'ecriredir' ) '(' ID ',' CSTE ',' ID ')' | ID ':=' exp )
            int alt53 = 16;
            switch ( input.LA(1) ) 
            {
            case 32:
            case 33:
            	{
                alt53 = 1;
                }
                break;
            case 37:
            	{
                alt53 = 2;
                }
                break;
            case 41:
            	{
                alt53 = 3;
                }
                break;
            case 46:
            	{
                alt53 = 4;
                }
                break;
            case 47:
            	{
                alt53 = 5;
                }
                break;
            case 48:
            	{
                alt53 = 6;
                }
                break;
            case 49:
            case 50:
            case 51:
            	{
                alt53 = 7;
                }
                break;
            case 52:
            	{
                alt53 = 8;
                }
                break;
            case 53:
            case 54:
            case 55:
            case 56:
            case 57:
            	{
                alt53 = 9;
                }
                break;
            case 58:
            case 59:
            	{
                alt53 = 10;
                }
                break;
            case 60:
            case 61:
            case 62:
            case 63:
            	{
                alt53 = 11;
                }
                break;
            case 66:
            	{
                alt53 = 12;
                }
                break;
            case 67:
            	{
                alt53 = 13;
                }
                break;
            case 68:
            case 69:
            	{
                alt53 = 14;
                }
                break;
            case 70:
            case 71:
            	{
                alt53 = 15;
                }
                break;
            case ID:
            	{
                alt53 = 16;
                }
                break;
            	default:
            	    if ( state.backtracking > 0 ) {state.failed = true; return ;}
            	    NoViableAltException nvae_d53s0 =
            	        new NoViableAltException("", 53, 0, input);

            	    throw nvae_d53s0;
            }

            switch (alt53) 
            {
                case 1 :
                    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:108:4: ( 'tantque' | 'tq' ) exp ( ':' )? lis ( 'fintantque' | 'ftq' | 'ftantque' )
                    {
                    	if ( (input.LA(1) >= 32 && input.LA(1) <= 33) ) 
                    	{
                    	    input.Consume();
                    	    state.errorRecovery = false;state.failed = false;
                    	}
                    	else 
                    	{
                    	    if ( state.backtracking > 0 ) {state.failed = true; return ;}
                    	    MismatchedSetException mse = new MismatchedSetException(null,input);
                    	    throw mse;
                    	}

                    	PushFollow(FOLLOW_exp_in_inst751);
                    	exp();
                    	state.followingStackPointer--;
                    	if (state.failed) return ;
                    	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:108:25: ( ':' )?
                    	int alt38 = 2;
                    	int LA38_0 = input.LA(1);

                    	if ( (LA38_0 == 17) )
                    	{
                    	    alt38 = 1;
                    	}
                    	switch (alt38) 
                    	{
                    	    case 1 :
                    	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:108:27: ':'
                    	        {
                    	        	Match(input,17,FOLLOW_17_in_inst755); if (state.failed) return ;

                    	        }
                    	        break;

                    	}

                    	PushFollow(FOLLOW_lis_in_inst760);
                    	lis();
                    	state.followingStackPointer--;
                    	if (state.failed) return ;
                    	if ( (input.LA(1) >= 34 && input.LA(1) <= 36) ) 
                    	{
                    	    input.Consume();
                    	    state.errorRecovery = false;state.failed = false;
                    	}
                    	else 
                    	{
                    	    if ( state.backtracking > 0 ) {state.failed = true; return ;}
                    	    MismatchedSetException mse = new MismatchedSetException(null,input);
                    	    throw mse;
                    	}


                    }
                    break;
                case 2 :
                    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:109:4: 'si' exp ( ':' )? lis ( 'sinon' lis )? ( 'fsi' | 'finsi' )
                    {
                    	Match(input,37,FOLLOW_37_in_inst773); if (state.failed) return ;
                    	PushFollow(FOLLOW_exp_in_inst775);
                    	exp();
                    	state.followingStackPointer--;
                    	if (state.failed) return ;
                    	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:109:13: ( ':' )?
                    	int alt39 = 2;
                    	int LA39_0 = input.LA(1);

                    	if ( (LA39_0 == 17) )
                    	{
                    	    alt39 = 1;
                    	}
                    	switch (alt39) 
                    	{
                    	    case 1 :
                    	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:109:14: ':'
                    	        {
                    	        	Match(input,17,FOLLOW_17_in_inst778); if (state.failed) return ;

                    	        }
                    	        break;

                    	}

                    	PushFollow(FOLLOW_lis_in_inst782);
                    	lis();
                    	state.followingStackPointer--;
                    	if (state.failed) return ;
                    	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:109:24: ( 'sinon' lis )?
                    	int alt40 = 2;
                    	int LA40_0 = input.LA(1);

                    	if ( (LA40_0 == 38) )
                    	{
                    	    alt40 = 1;
                    	}
                    	switch (alt40) 
                    	{
                    	    case 1 :
                    	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:109:25: 'sinon' lis
                    	        {
                    	        	Match(input,38,FOLLOW_38_in_inst785); if (state.failed) return ;
                    	        	PushFollow(FOLLOW_lis_in_inst787);
                    	        	lis();
                    	        	state.followingStackPointer--;
                    	        	if (state.failed) return ;

                    	        }
                    	        break;

                    	}

                    	if ( (input.LA(1) >= 39 && input.LA(1) <= 40) ) 
                    	{
                    	    input.Consume();
                    	    state.errorRecovery = false;state.failed = false;
                    	}
                    	else 
                    	{
                    	    if ( state.backtracking > 0 ) {state.failed = true; return ;}
                    	    MismatchedSetException mse = new MismatchedSetException(null,input);
                    	    throw mse;
                    	}


                    }
                    break;
                case 3 :
                    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:110:4: 'pour' ID ':=' exp ',' exp ( ',' exp )? ( ':' )? lis ( 'finpour' | 'fp' | 'fpour' )
                    {
                    	Match(input,41,FOLLOW_41_in_inst800); if (state.failed) return ;
                    	Match(input,ID,FOLLOW_ID_in_inst802); if (state.failed) return ;
                    	Match(input,42,FOLLOW_42_in_inst804); if (state.failed) return ;
                    	PushFollow(FOLLOW_exp_in_inst806);
                    	exp();
                    	state.followingStackPointer--;
                    	if (state.failed) return ;
                    	Match(input,18,FOLLOW_18_in_inst808); if (state.failed) return ;
                    	PushFollow(FOLLOW_exp_in_inst810);
                    	exp();
                    	state.followingStackPointer--;
                    	if (state.failed) return ;
                    	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:110:31: ( ',' exp )?
                    	int alt41 = 2;
                    	int LA41_0 = input.LA(1);

                    	if ( (LA41_0 == 18) )
                    	{
                    	    alt41 = 1;
                    	}
                    	switch (alt41) 
                    	{
                    	    case 1 :
                    	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:110:32: ',' exp
                    	        {
                    	        	Match(input,18,FOLLOW_18_in_inst813); if (state.failed) return ;
                    	        	PushFollow(FOLLOW_exp_in_inst815);
                    	        	exp();
                    	        	state.followingStackPointer--;
                    	        	if (state.failed) return ;

                    	        }
                    	        break;

                    	}

                    	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:110:41: ( ':' )?
                    	int alt42 = 2;
                    	int LA42_0 = input.LA(1);

                    	if ( (LA42_0 == 17) )
                    	{
                    	    alt42 = 1;
                    	}
                    	switch (alt42) 
                    	{
                    	    case 1 :
                    	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:110:42: ':'
                    	        {
                    	        	Match(input,17,FOLLOW_17_in_inst819); if (state.failed) return ;

                    	        }
                    	        break;

                    	}

                    	PushFollow(FOLLOW_lis_in_inst823);
                    	lis();
                    	state.followingStackPointer--;
                    	if (state.failed) return ;
                    	if ( (input.LA(1) >= 43 && input.LA(1) <= 45) ) 
                    	{
                    	    input.Consume();
                    	    state.errorRecovery = false;state.failed = false;
                    	}
                    	else 
                    	{
                    	    if ( state.backtracking > 0 ) {state.failed = true; return ;}
                    	    MismatchedSetException mse = new MismatchedSetException(null,input);
                    	    throw mse;
                    	}


                    }
                    break;
                case 4 :
                    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:111:4: 'appel' ID ( '(' exp ( ',' exp )* ')' )?
                    {
                    	Match(input,46,FOLLOW_46_in_inst836); if (state.failed) return ;
                    	Match(input,ID,FOLLOW_ID_in_inst838); if (state.failed) return ;
                    	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:111:15: ( '(' exp ( ',' exp )* ')' )?
                    	int alt44 = 2;
                    	int LA44_0 = input.LA(1);

                    	if ( (LA44_0 == 14) )
                    	{
                    	    alt44 = 1;
                    	}
                    	switch (alt44) 
                    	{
                    	    case 1 :
                    	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:111:16: '(' exp ( ',' exp )* ')'
                    	        {
                    	        	Match(input,14,FOLLOW_14_in_inst841); if (state.failed) return ;
                    	        	PushFollow(FOLLOW_exp_in_inst843);
                    	        	exp();
                    	        	state.followingStackPointer--;
                    	        	if (state.failed) return ;
                    	        	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:111:24: ( ',' exp )*
                    	        	do 
                    	        	{
                    	        	    int alt43 = 2;
                    	        	    int LA43_0 = input.LA(1);

                    	        	    if ( (LA43_0 == 18) )
                    	        	    {
                    	        	        alt43 = 1;
                    	        	    }


                    	        	    switch (alt43) 
                    	        		{
                    	        			case 1 :
                    	        			    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:111:26: ',' exp
                    	        			    {
                    	        			    	Match(input,18,FOLLOW_18_in_inst847); if (state.failed) return ;
                    	        			    	PushFollow(FOLLOW_exp_in_inst849);
                    	        			    	exp();
                    	        			    	state.followingStackPointer--;
                    	        			    	if (state.failed) return ;

                    	        			    }
                    	        			    break;

                    	        			default:
                    	        			    goto loop43;
                    	        	    }
                    	        	} while (true);

                    	        	loop43:
                    	        		;	// Stops C# compiler whining that label 'loop43' has no statements

                    	        	Match(input,15,FOLLOW_15_in_inst853); if (state.failed) return ;

                    	        }
                    	        break;

                    	}


                    }
                    break;
                case 5 :
                    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:112:4: 'lire' '(' ID ( ',' ID )* ')'
                    {
                    	Match(input,47,FOLLOW_47_in_inst861); if (state.failed) return ;
                    	Match(input,14,FOLLOW_14_in_inst863); if (state.failed) return ;
                    	Match(input,ID,FOLLOW_ID_in_inst865); if (state.failed) return ;
                    	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:112:18: ( ',' ID )*
                    	do 
                    	{
                    	    int alt45 = 2;
                    	    int LA45_0 = input.LA(1);

                    	    if ( (LA45_0 == 18) )
                    	    {
                    	        alt45 = 1;
                    	    }


                    	    switch (alt45) 
                    		{
                    			case 1 :
                    			    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:112:19: ',' ID
                    			    {
                    			    	Match(input,18,FOLLOW_18_in_inst868); if (state.failed) return ;
                    			    	Match(input,ID,FOLLOW_ID_in_inst870); if (state.failed) return ;

                    			    }
                    			    break;

                    			default:
                    			    goto loop45;
                    	    }
                    	} while (true);

                    	loop45:
                    		;	// Stops C# compiler whining that label 'loop45' has no statements

                    	Match(input,15,FOLLOW_15_in_inst875); if (state.failed) return ;

                    }
                    break;
                case 6 :
                    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:113:4: 'ecrire' '(' exp ( ',' exp )* ')'
                    {
                    	Match(input,48,FOLLOW_48_in_inst880); if (state.failed) return ;
                    	Match(input,14,FOLLOW_14_in_inst882); if (state.failed) return ;
                    	PushFollow(FOLLOW_exp_in_inst884);
                    	exp();
                    	state.followingStackPointer--;
                    	if (state.failed) return ;
                    	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:113:21: ( ',' exp )*
                    	do 
                    	{
                    	    int alt46 = 2;
                    	    int LA46_0 = input.LA(1);

                    	    if ( (LA46_0 == 18) )
                    	    {
                    	        alt46 = 1;
                    	    }


                    	    switch (alt46) 
                    		{
                    			case 1 :
                    			    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:113:22: ',' exp
                    			    {
                    			    	Match(input,18,FOLLOW_18_in_inst887); if (state.failed) return ;
                    			    	PushFollow(FOLLOW_exp_in_inst888);
                    			    	exp();
                    			    	state.followingStackPointer--;
                    			    	if (state.failed) return ;

                    			    }
                    			    break;

                    			default:
                    			    goto loop46;
                    	    }
                    	} while (true);

                    	loop46:
                    		;	// Stops C# compiler whining that label 'loop46' has no statements

                    	Match(input,15,FOLLOW_15_in_inst892); if (state.failed) return ;

                    }
                    break;
                case 7 :
                    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:114:4: ( 'liberer' | 'fllouer' | 'fermer' ) '(' exp ')'
                    {
                    	if ( (input.LA(1) >= 49 && input.LA(1) <= 51) ) 
                    	{
                    	    input.Consume();
                    	    state.errorRecovery = false;state.failed = false;
                    	}
                    	else 
                    	{
                    	    if ( state.backtracking > 0 ) {state.failed = true; return ;}
                    	    MismatchedSetException mse = new MismatchedSetException(null,input);
                    	    throw mse;
                    	}

                    	Match(input,14,FOLLOW_14_in_inst909); if (state.failed) return ;
                    	PushFollow(FOLLOW_exp_in_inst911);
                    	exp();
                    	state.followingStackPointer--;
                    	if (state.failed) return ;
                    	Match(input,15,FOLLOW_15_in_inst913); if (state.failed) return ;

                    }
                    break;
                case 8 :
                    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:115:4: 'ouvrir' '(' ID ',' CHAINE ',' CHAINE ')'
                    {
                    	Match(input,52,FOLLOW_52_in_inst918); if (state.failed) return ;
                    	Match(input,14,FOLLOW_14_in_inst920); if (state.failed) return ;
                    	Match(input,ID,FOLLOW_ID_in_inst922); if (state.failed) return ;
                    	Match(input,18,FOLLOW_18_in_inst924); if (state.failed) return ;
                    	Match(input,CHAINE,FOLLOW_CHAINE_in_inst926); if (state.failed) return ;
                    	Match(input,18,FOLLOW_18_in_inst928); if (state.failed) return ;
                    	Match(input,CHAINE,FOLLOW_CHAINE_in_inst930); if (state.failed) return ;
                    	Match(input,15,FOLLOW_15_in_inst932); if (state.failed) return ;

                    }
                    break;
                case 9 :
                    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:116:4: ( 'lirecar' | 'lirenombre' | 'lireseq' | 'ecrireseq' | 'rajouter' ) '(' ID ',' ID ')'
                    {
                    	if ( (input.LA(1) >= 53 && input.LA(1) <= 57) ) 
                    	{
                    	    input.Consume();
                    	    state.errorRecovery = false;state.failed = false;
                    	}
                    	else 
                    	{
                    	    if ( state.backtracking > 0 ) {state.failed = true; return ;}
                    	    MismatchedSetException mse = new MismatchedSetException(null,input);
                    	    throw mse;
                    	}

                    	Match(input,14,FOLLOW_14_in_inst957); if (state.failed) return ;
                    	Match(input,ID,FOLLOW_ID_in_inst959); if (state.failed) return ;
                    	Match(input,18,FOLLOW_18_in_inst960); if (state.failed) return ;
                    	Match(input,ID,FOLLOW_ID_in_inst962); if (state.failed) return ;
                    	Match(input,15,FOLLOW_15_in_inst963); if (state.failed) return ;

                    }
                    break;
                case 10 :
                    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:117:4: ( 'aff_adr' | 'aff_val' ) '(' exp ',' exp ')'
                    {
                    	if ( (input.LA(1) >= 58 && input.LA(1) <= 59) ) 
                    	{
                    	    input.Consume();
                    	    state.errorRecovery = false;state.failed = false;
                    	}
                    	else 
                    	{
                    	    if ( state.backtracking > 0 ) {state.failed = true; return ;}
                    	    MismatchedSetException mse = new MismatchedSetException(null,input);
                    	    throw mse;
                    	}

                    	Match(input,14,FOLLOW_14_in_inst976); if (state.failed) return ;
                    	PushFollow(FOLLOW_exp_in_inst978);
                    	exp();
                    	state.followingStackPointer--;
                    	if (state.failed) return ;
                    	Match(input,18,FOLLOW_18_in_inst980); if (state.failed) return ;
                    	PushFollow(FOLLOW_exp_in_inst982);
                    	exp();
                    	state.followingStackPointer--;
                    	if (state.failed) return ;
                    	Match(input,15,FOLLOW_15_in_inst984); if (state.failed) return ;

                    }
                    break;
                case 11 :
                    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:118:4: ( 'creer_liste' | 'init_vecteur' | 'creer_mnombre' | 'init_struct' ) '(' ID ',' '[' ( exp | '[' exp ( ',' exp )* ']' ) ( ',' ( exp | '[' exp ( ',' exp )* ']' ) )* ']' ')'
                    {
                    	if ( (input.LA(1) >= 60 && input.LA(1) <= 63) ) 
                    	{
                    	    input.Consume();
                    	    state.errorRecovery = false;state.failed = false;
                    	}
                    	else 
                    	{
                    	    if ( state.backtracking > 0 ) {state.failed = true; return ;}
                    	    MismatchedSetException mse = new MismatchedSetException(null,input);
                    	    throw mse;
                    	}

                    	Match(input,14,FOLLOW_14_in_inst1005); if (state.failed) return ;
                    	Match(input,ID,FOLLOW_ID_in_inst1007); if (state.failed) return ;
                    	Match(input,18,FOLLOW_18_in_inst1009); if (state.failed) return ;
                    	Match(input,64,FOLLOW_64_in_inst1011); if (state.failed) return ;
                    	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:118:86: ( exp | '[' exp ( ',' exp )* ']' )
                    	int alt48 = 2;
                    	int LA48_0 = input.LA(1);

                    	if ( ((LA48_0 >= ID && LA48_0 <= CHAINE) || LA48_0 == 14 || LA48_0 == 30 || (LA48_0 >= 72 && LA48_0 <= 73) || (LA48_0 >= 78 && LA48_0 <= 93)) )
                    	{
                    	    alt48 = 1;
                    	}
                    	else if ( (LA48_0 == 64) )
                    	{
                    	    alt48 = 2;
                    	}
                    	else 
                    	{
                    	    if ( state.backtracking > 0 ) {state.failed = true; return ;}
                    	    NoViableAltException nvae_d48s0 =
                    	        new NoViableAltException("", 48, 0, input);

                    	    throw nvae_d48s0;
                    	}
                    	switch (alt48) 
                    	{
                    	    case 1 :
                    	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:118:87: exp
                    	        {
                    	        	PushFollow(FOLLOW_exp_in_inst1014);
                    	        	exp();
                    	        	state.followingStackPointer--;
                    	        	if (state.failed) return ;

                    	        }
                    	        break;
                    	    case 2 :
                    	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:118:92: '[' exp ( ',' exp )* ']'
                    	        {
                    	        	Match(input,64,FOLLOW_64_in_inst1017); if (state.failed) return ;
                    	        	PushFollow(FOLLOW_exp_in_inst1019);
                    	        	exp();
                    	        	state.followingStackPointer--;
                    	        	if (state.failed) return ;
                    	        	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:118:100: ( ',' exp )*
                    	        	do 
                    	        	{
                    	        	    int alt47 = 2;
                    	        	    int LA47_0 = input.LA(1);

                    	        	    if ( (LA47_0 == 18) )
                    	        	    {
                    	        	        alt47 = 1;
                    	        	    }


                    	        	    switch (alt47) 
                    	        		{
                    	        			case 1 :
                    	        			    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:118:101: ',' exp
                    	        			    {
                    	        			    	Match(input,18,FOLLOW_18_in_inst1022); if (state.failed) return ;
                    	        			    	PushFollow(FOLLOW_exp_in_inst1024);
                    	        			    	exp();
                    	        			    	state.followingStackPointer--;
                    	        			    	if (state.failed) return ;

                    	        			    }
                    	        			    break;

                    	        			default:
                    	        			    goto loop47;
                    	        	    }
                    	        	} while (true);

                    	        	loop47:
                    	        		;	// Stops C# compiler whining that label 'loop47' has no statements

                    	        	Match(input,65,FOLLOW_65_in_inst1028); if (state.failed) return ;

                    	        }
                    	        break;

                    	}

                    	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:118:117: ( ',' ( exp | '[' exp ( ',' exp )* ']' ) )*
                    	do 
                    	{
                    	    int alt51 = 2;
                    	    int LA51_0 = input.LA(1);

                    	    if ( (LA51_0 == 18) )
                    	    {
                    	        alt51 = 1;
                    	    }


                    	    switch (alt51) 
                    		{
                    			case 1 :
                    			    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:118:118: ',' ( exp | '[' exp ( ',' exp )* ']' )
                    			    {
                    			    	Match(input,18,FOLLOW_18_in_inst1033); if (state.failed) return ;
                    			    	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:118:122: ( exp | '[' exp ( ',' exp )* ']' )
                    			    	int alt50 = 2;
                    			    	int LA50_0 = input.LA(1);

                    			    	if ( ((LA50_0 >= ID && LA50_0 <= CHAINE) || LA50_0 == 14 || LA50_0 == 30 || (LA50_0 >= 72 && LA50_0 <= 73) || (LA50_0 >= 78 && LA50_0 <= 93)) )
                    			    	{
                    			    	    alt50 = 1;
                    			    	}
                    			    	else if ( (LA50_0 == 64) )
                    			    	{
                    			    	    alt50 = 2;
                    			    	}
                    			    	else 
                    			    	{
                    			    	    if ( state.backtracking > 0 ) {state.failed = true; return ;}
                    			    	    NoViableAltException nvae_d50s0 =
                    			    	        new NoViableAltException("", 50, 0, input);

                    			    	    throw nvae_d50s0;
                    			    	}
                    			    	switch (alt50) 
                    			    	{
                    			    	    case 1 :
                    			    	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:118:123: exp
                    			    	        {
                    			    	        	PushFollow(FOLLOW_exp_in_inst1036);
                    			    	        	exp();
                    			    	        	state.followingStackPointer--;
                    			    	        	if (state.failed) return ;

                    			    	        }
                    			    	        break;
                    			    	    case 2 :
                    			    	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:118:128: '[' exp ( ',' exp )* ']'
                    			    	        {
                    			    	        	Match(input,64,FOLLOW_64_in_inst1039); if (state.failed) return ;
                    			    	        	PushFollow(FOLLOW_exp_in_inst1041);
                    			    	        	exp();
                    			    	        	state.followingStackPointer--;
                    			    	        	if (state.failed) return ;
                    			    	        	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:118:136: ( ',' exp )*
                    			    	        	do 
                    			    	        	{
                    			    	        	    int alt49 = 2;
                    			    	        	    int LA49_0 = input.LA(1);

                    			    	        	    if ( (LA49_0 == 18) )
                    			    	        	    {
                    			    	        	        alt49 = 1;
                    			    	        	    }


                    			    	        	    switch (alt49) 
                    			    	        		{
                    			    	        			case 1 :
                    			    	        			    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:118:137: ',' exp
                    			    	        			    {
                    			    	        			    	Match(input,18,FOLLOW_18_in_inst1044); if (state.failed) return ;
                    			    	        			    	PushFollow(FOLLOW_exp_in_inst1046);
                    			    	        			    	exp();
                    			    	        			    	state.followingStackPointer--;
                    			    	        			    	if (state.failed) return ;

                    			    	        			    }
                    			    	        			    break;

                    			    	        			default:
                    			    	        			    goto loop49;
                    			    	        	    }
                    			    	        	} while (true);

                    			    	        	loop49:
                    			    	        		;	// Stops C# compiler whining that label 'loop49' has no statements

                    			    	        	Match(input,65,FOLLOW_65_in_inst1050); if (state.failed) return ;

                    			    	        }
                    			    	        break;

                    			    	}


                    			    }
                    			    break;

                    			default:
                    			    goto loop51;
                    	    }
                    	} while (true);

                    	loop51:
                    		;	// Stops C# compiler whining that label 'loop51' has no statements

                    	Match(input,65,FOLLOW_65_in_inst1057); if (state.failed) return ;
                    	Match(input,15,FOLLOW_15_in_inst1059); if (state.failed) return ;

                    }
                    break;
                case 12 :
                    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:119:4: 'creer_mcar' '(' ID ',' '[' CHAINE ']' ')'
                    {
                    	Match(input,66,FOLLOW_66_in_inst1064); if (state.failed) return ;
                    	Match(input,14,FOLLOW_14_in_inst1066); if (state.failed) return ;
                    	Match(input,ID,FOLLOW_ID_in_inst1068); if (state.failed) return ;
                    	Match(input,18,FOLLOW_18_in_inst1070); if (state.failed) return ;
                    	Match(input,64,FOLLOW_64_in_inst1072); if (state.failed) return ;
                    	Match(input,CHAINE,FOLLOW_CHAINE_in_inst1074); if (state.failed) return ;
                    	Match(input,65,FOLLOW_65_in_inst1076); if (state.failed) return ;
                    	Match(input,15,FOLLOW_15_in_inst1078); if (state.failed) return ;

                    }
                    break;
                case 13 :
                    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:120:4: 'aff_element' '(' exp '[' exp ( ',' exp )* ']' ',' exp ')'
                    {
                    	Match(input,67,FOLLOW_67_in_inst1083); if (state.failed) return ;
                    	Match(input,14,FOLLOW_14_in_inst1085); if (state.failed) return ;
                    	PushFollow(FOLLOW_exp_in_inst1087);
                    	exp();
                    	state.followingStackPointer--;
                    	if (state.failed) return ;
                    	Match(input,64,FOLLOW_64_in_inst1089); if (state.failed) return ;
                    	PushFollow(FOLLOW_exp_in_inst1091);
                    	exp();
                    	state.followingStackPointer--;
                    	if (state.failed) return ;
                    	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:120:34: ( ',' exp )*
                    	do 
                    	{
                    	    int alt52 = 2;
                    	    int LA52_0 = input.LA(1);

                    	    if ( (LA52_0 == 18) )
                    	    {
                    	        alt52 = 1;
                    	    }


                    	    switch (alt52) 
                    		{
                    			case 1 :
                    			    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:120:35: ',' exp
                    			    {
                    			    	Match(input,18,FOLLOW_18_in_inst1094); if (state.failed) return ;
                    			    	PushFollow(FOLLOW_exp_in_inst1096);
                    			    	exp();
                    			    	state.followingStackPointer--;
                    			    	if (state.failed) return ;

                    			    }
                    			    break;

                    			default:
                    			    goto loop52;
                    	    }
                    	} while (true);

                    	loop52:
                    		;	// Stops C# compiler whining that label 'loop52' has no statements

                    	Match(input,65,FOLLOW_65_in_inst1101); if (state.failed) return ;
                    	Match(input,18,FOLLOW_18_in_inst1103); if (state.failed) return ;
                    	PushFollow(FOLLOW_exp_in_inst1104);
                    	exp();
                    	state.followingStackPointer--;
                    	if (state.failed) return ;
                    	Match(input,15,FOLLOW_15_in_inst1106); if (state.failed) return ;

                    }
                    break;
                case 14 :
                    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:121:4: ( 'aff_struct' | 'aff_entete' ) '(' ID ',' CSTE ',' exp ')'
                    {
                    	if ( (input.LA(1) >= 68 && input.LA(1) <= 69) ) 
                    	{
                    	    input.Consume();
                    	    state.errorRecovery = false;state.failed = false;
                    	}
                    	else 
                    	{
                    	    if ( state.backtracking > 0 ) {state.failed = true; return ;}
                    	    MismatchedSetException mse = new MismatchedSetException(null,input);
                    	    throw mse;
                    	}

                    	Match(input,14,FOLLOW_14_in_inst1116); if (state.failed) return ;
                    	Match(input,ID,FOLLOW_ID_in_inst1117); if (state.failed) return ;
                    	Match(input,18,FOLLOW_18_in_inst1118); if (state.failed) return ;
                    	Match(input,CSTE,FOLLOW_CSTE_in_inst1120); if (state.failed) return ;
                    	Match(input,18,FOLLOW_18_in_inst1121); if (state.failed) return ;
                    	PushFollow(FOLLOW_exp_in_inst1123);
                    	exp();
                    	state.followingStackPointer--;
                    	if (state.failed) return ;
                    	Match(input,15,FOLLOW_15_in_inst1124); if (state.failed) return ;

                    }
                    break;
                case 15 :
                    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:122:4: ( 'liredir' | 'ecriredir' ) '(' ID ',' CSTE ',' ID ')'
                    {
                    	if ( (input.LA(1) >= 70 && input.LA(1) <= 71) ) 
                    	{
                    	    input.Consume();
                    	    state.errorRecovery = false;state.failed = false;
                    	}
                    	else 
                    	{
                    	    if ( state.backtracking > 0 ) {state.failed = true; return ;}
                    	    MismatchedSetException mse = new MismatchedSetException(null,input);
                    	    throw mse;
                    	}

                    	Match(input,14,FOLLOW_14_in_inst1138); if (state.failed) return ;
                    	Match(input,ID,FOLLOW_ID_in_inst1139); if (state.failed) return ;
                    	Match(input,18,FOLLOW_18_in_inst1140); if (state.failed) return ;
                    	Match(input,CSTE,FOLLOW_CSTE_in_inst1142); if (state.failed) return ;
                    	Match(input,18,FOLLOW_18_in_inst1143); if (state.failed) return ;
                    	Match(input,ID,FOLLOW_ID_in_inst1145); if (state.failed) return ;
                    	Match(input,15,FOLLOW_15_in_inst1146); if (state.failed) return ;

                    }
                    break;
                case 16 :
                    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:123:4: ID ':=' exp
                    {
                    	Match(input,ID,FOLLOW_ID_in_inst1151); if (state.failed) return ;
                    	Match(input,42,FOLLOW_42_in_inst1153); if (state.failed) return ;
                    	PushFollow(FOLLOW_exp_in_inst1155);
                    	exp();
                    	state.followingStackPointer--;
                    	if (state.failed) return ;

                    }
                    break;

            }
        }
        catch (RecognitionException re) 
    	{
            ReportError(re);
            Recover(input,re);
        }
        finally 
    	{
        }
        return ;
    }
    // $ANTLR end "inst"


    // $ANTLR start "exp"
    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:126:1: exp : exps ( OPR exps )? ;
    public void exp() // throws RecognitionException [1]
    {   
        try 
    	{
            // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:127:2: ( exps ( OPR exps )? )
            // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:127:4: exps ( OPR exps )?
            {
            	PushFollow(FOLLOW_exps_in_exp1168);
            	exps();
            	state.followingStackPointer--;
            	if (state.failed) return ;
            	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:127:8: ( OPR exps )?
            	int alt54 = 2;
            	int LA54_0 = input.LA(1);

            	if ( (LA54_0 == OPR) )
            	{
            	    alt54 = 1;
            	}
            	switch (alt54) 
            	{
            	    case 1 :
            	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:127:10: OPR exps
            	        {
            	        	Match(input,OPR,FOLLOW_OPR_in_exp1171); if (state.failed) return ;
            	        	PushFollow(FOLLOW_exps_in_exp1173);
            	        	exps();
            	        	state.followingStackPointer--;
            	        	if (state.failed) return ;

            	        }
            	        break;

            	}


            }

        }
        catch (RecognitionException re) 
    	{
            ReportError(re);
            Recover(input,re);
        }
        finally 
    	{
        }
        return ;
    }
    // $ANTLR end "exp"


    // $ANTLR start "exps"
    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:130:1: exps : ( ( '+' | '-' ) )? terme ( ( '+' | '-' | 'ou' ) terme )* ;
    public void exps() // throws RecognitionException [1]
    {   
        try 
    	{
            // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:131:2: ( ( ( '+' | '-' ) )? terme ( ( '+' | '-' | 'ou' ) terme )* )
            // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:131:4: ( ( '+' | '-' ) )? terme ( ( '+' | '-' | 'ou' ) terme )*
            {
            	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:131:4: ( ( '+' | '-' ) )?
            	int alt55 = 2;
            	int LA55_0 = input.LA(1);

            	if ( ((LA55_0 >= 72 && LA55_0 <= 73)) )
            	{
            	    alt55 = 1;
            	}
            	switch (alt55) 
            	{
            	    case 1 :
            	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:131:5: ( '+' | '-' )
            	        {
            	        	if ( (input.LA(1) >= 72 && input.LA(1) <= 73) ) 
            	        	{
            	        	    input.Consume();
            	        	    state.errorRecovery = false;state.failed = false;
            	        	}
            	        	else 
            	        	{
            	        	    if ( state.backtracking > 0 ) {state.failed = true; return ;}
            	        	    MismatchedSetException mse = new MismatchedSetException(null,input);
            	        	    throw mse;
            	        	}


            	        }
            	        break;

            	}

            	PushFollow(FOLLOW_terme_in_exps1198);
            	terme();
            	state.followingStackPointer--;
            	if (state.failed) return ;
            	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:131:25: ( ( '+' | '-' | 'ou' ) terme )*
            	do 
            	{
            	    int alt56 = 2;
            	    int LA56_0 = input.LA(1);

            	    if ( ((LA56_0 >= 72 && LA56_0 <= 74)) )
            	    {
            	        alt56 = 1;
            	    }


            	    switch (alt56) 
            		{
            			case 1 :
            			    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:131:27: ( '+' | '-' | 'ou' ) terme
            			    {
            			    	if ( (input.LA(1) >= 72 && input.LA(1) <= 74) ) 
            			    	{
            			    	    input.Consume();
            			    	    state.errorRecovery = false;state.failed = false;
            			    	}
            			    	else 
            			    	{
            			    	    if ( state.backtracking > 0 ) {state.failed = true; return ;}
            			    	    MismatchedSetException mse = new MismatchedSetException(null,input);
            			    	    throw mse;
            			    	}

            			    	PushFollow(FOLLOW_terme_in_exps1212);
            			    	terme();
            			    	state.followingStackPointer--;
            			    	if (state.failed) return ;

            			    }
            			    break;

            			default:
            			    goto loop56;
            	    }
            	} while (true);

            	loop56:
            		;	// Stops C# compiler whining that label 'loop56' has no statements


            }

        }
        catch (RecognitionException re) 
    	{
            ReportError(re);
            Recover(input,re);
        }
        finally 
    	{
        }
        return ;
    }
    // $ANTLR end "exps"


    // $ANTLR start "terme"
    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:134:1: terme : facteur ( ( '*' | '/' | 'et' ) facteur )* ;
    public void terme() // throws RecognitionException [1]
    {   
        try 
    	{
            // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:135:2: ( facteur ( ( '*' | '/' | 'et' ) facteur )* )
            // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:135:4: facteur ( ( '*' | '/' | 'et' ) facteur )*
            {
            	PushFollow(FOLLOW_facteur_in_terme1229);
            	facteur();
            	state.followingStackPointer--;
            	if (state.failed) return ;
            	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:135:11: ( ( '*' | '/' | 'et' ) facteur )*
            	do 
            	{
            	    int alt57 = 2;
            	    int LA57_0 = input.LA(1);

            	    if ( ((LA57_0 >= 75 && LA57_0 <= 77)) )
            	    {
            	        alt57 = 1;
            	    }


            	    switch (alt57) 
            		{
            			case 1 :
            			    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:135:12: ( '*' | '/' | 'et' ) facteur
            			    {
            			    	if ( (input.LA(1) >= 75 && input.LA(1) <= 77) ) 
            			    	{
            			    	    input.Consume();
            			    	    state.errorRecovery = false;state.failed = false;
            			    	}
            			    	else 
            			    	{
            			    	    if ( state.backtracking > 0 ) {state.failed = true; return ;}
            			    	    MismatchedSetException mse = new MismatchedSetException(null,input);
            			    	    throw mse;
            			    	}

            			    	PushFollow(FOLLOW_facteur_in_terme1243);
            			    	facteur();
            			    	state.followingStackPointer--;
            			    	if (state.failed) return ;

            			    }
            			    break;

            			default:
            			    goto loop57;
            	    }
            	} while (true);

            	loop57:
            		;	// Stops C# compiler whining that label 'loop57' has no statements


            }

        }
        catch (RecognitionException re) 
    	{
            ReportError(re);
            Recover(input,re);
        }
        finally 
    	{
        }
        return ;
    }
    // $ANTLR end "terme"


    // $ANTLR start "facteur"
    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:138:1: facteur : ( 'nil' | 'non' facteur | '(' exp ')' | CSTE | CHAINE | 'vrai' | 'faux' | fonct | ID ( '(' exp ( ',' exp )* ')' )? );
    public void facteur() // throws RecognitionException [1]
    {   
        try 
    	{
            // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:139:2: ( 'nil' | 'non' facteur | '(' exp ')' | CSTE | CHAINE | 'vrai' | 'faux' | fonct | ID ( '(' exp ( ',' exp )* ')' )? )
            int alt60 = 9;
            switch ( input.LA(1) ) 
            {
            case 78:
            	{
                alt60 = 1;
                }
                break;
            case 79:
            	{
                alt60 = 2;
                }
                break;
            case 14:
            	{
                alt60 = 3;
                }
                break;
            case CSTE:
            	{
                alt60 = 4;
                }
                break;
            case CHAINE:
            	{
                alt60 = 5;
                }
                break;
            case 80:
            	{
                alt60 = 6;
                }
                break;
            case 81:
            	{
                alt60 = 7;
                }
                break;
            case 30:
            case 82:
            case 83:
            case 84:
            case 85:
            case 86:
            case 87:
            case 88:
            case 89:
            case 90:
            case 91:
            case 92:
            case 93:
            	{
                alt60 = 8;
                }
                break;
            case ID:
            	{
                alt60 = 9;
                }
                break;
            	default:
            	    if ( state.backtracking > 0 ) {state.failed = true; return ;}
            	    NoViableAltException nvae_d60s0 =
            	        new NoViableAltException("", 60, 0, input);

            	    throw nvae_d60s0;
            }

            switch (alt60) 
            {
                case 1 :
                    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:139:4: 'nil'
                    {
                    	Match(input,78,FOLLOW_78_in_facteur1257); if (state.failed) return ;

                    }
                    break;
                case 2 :
                    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:140:4: 'non' facteur
                    {
                    	Match(input,79,FOLLOW_79_in_facteur1263); if (state.failed) return ;
                    	PushFollow(FOLLOW_facteur_in_facteur1265);
                    	facteur();
                    	state.followingStackPointer--;
                    	if (state.failed) return ;

                    }
                    break;
                case 3 :
                    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:141:4: '(' exp ')'
                    {
                    	Match(input,14,FOLLOW_14_in_facteur1272); if (state.failed) return ;
                    	PushFollow(FOLLOW_exp_in_facteur1274);
                    	exp();
                    	state.followingStackPointer--;
                    	if (state.failed) return ;
                    	Match(input,15,FOLLOW_15_in_facteur1276); if (state.failed) return ;

                    }
                    break;
                case 4 :
                    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:142:7: CSTE
                    {
                    	Match(input,CSTE,FOLLOW_CSTE_in_facteur1286); if (state.failed) return ;

                    }
                    break;
                case 5 :
                    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:143:4: CHAINE
                    {
                    	Match(input,CHAINE,FOLLOW_CHAINE_in_facteur1292); if (state.failed) return ;

                    }
                    break;
                case 6 :
                    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:144:4: 'vrai'
                    {
                    	Match(input,80,FOLLOW_80_in_facteur1298); if (state.failed) return ;

                    }
                    break;
                case 7 :
                    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:144:13: 'faux'
                    {
                    	Match(input,81,FOLLOW_81_in_facteur1302); if (state.failed) return ;

                    }
                    break;
                case 8 :
                    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:145:4: fonct
                    {
                    	PushFollow(FOLLOW_fonct_in_facteur1307);
                    	fonct();
                    	state.followingStackPointer--;
                    	if (state.failed) return ;

                    }
                    break;
                case 9 :
                    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:146:4: ID ( '(' exp ( ',' exp )* ')' )?
                    {
                    	Match(input,ID,FOLLOW_ID_in_facteur1313); if (state.failed) return ;
                    	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:146:7: ( '(' exp ( ',' exp )* ')' )?
                    	int alt59 = 2;
                    	int LA59_0 = input.LA(1);

                    	if ( (LA59_0 == 14) )
                    	{
                    	    alt59 = 1;
                    	}
                    	switch (alt59) 
                    	{
                    	    case 1 :
                    	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:146:9: '(' exp ( ',' exp )* ')'
                    	        {
                    	        	Match(input,14,FOLLOW_14_in_facteur1317); if (state.failed) return ;
                    	        	PushFollow(FOLLOW_exp_in_facteur1319);
                    	        	exp();
                    	        	state.followingStackPointer--;
                    	        	if (state.failed) return ;
                    	        	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:146:17: ( ',' exp )*
                    	        	do 
                    	        	{
                    	        	    int alt58 = 2;
                    	        	    int LA58_0 = input.LA(1);

                    	        	    if ( (LA58_0 == 18) )
                    	        	    {
                    	        	        alt58 = 1;
                    	        	    }


                    	        	    switch (alt58) 
                    	        		{
                    	        			case 1 :
                    	        			    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:146:18: ',' exp
                    	        			    {
                    	        			    	Match(input,18,FOLLOW_18_in_facteur1322); if (state.failed) return ;
                    	        			    	PushFollow(FOLLOW_exp_in_facteur1324);
                    	        			    	exp();
                    	        			    	state.followingStackPointer--;
                    	        			    	if (state.failed) return ;

                    	        			    }
                    	        			    break;

                    	        			default:
                    	        			    goto loop58;
                    	        	    }
                    	        	} while (true);

                    	        	loop58:
                    	        		;	// Stops C# compiler whining that label 'loop58' has no statements

                    	        	Match(input,15,FOLLOW_15_in_facteur1329); if (state.failed) return ;

                    	        }
                    	        break;

                    	}


                    }
                    break;

            }
        }
        catch (RecognitionException re) 
    	{
            ReportError(re);
            Recover(input,re);
        }
        finally 
    	{
        }
        return ;
    }
    // $ANTLR end "facteur"


    // $ANTLR start "fonct"
    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:149:1: fonct : ( ( 'valeur' | 'suivant' ) '(' ID ')' | 'element' '(' fonct '[' exp ( ',' exp )* ']' ')' | ( 'struct' | 'entete' | 'caract' ) '(' ID ',' CSTE ')' | ( 'aleachaine' | 'aleanombre' | 'longchaine' ) '(' exp ')' | ( 'nbrcar' | 'nbrNombre' | 'finfich' | 'alloc_bloc' ) '(' ID ')' );
    public void fonct() // throws RecognitionException [1]
    {   
        try 
    	{
            // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:150:2: ( ( 'valeur' | 'suivant' ) '(' ID ')' | 'element' '(' fonct '[' exp ( ',' exp )* ']' ')' | ( 'struct' | 'entete' | 'caract' ) '(' ID ',' CSTE ')' | ( 'aleachaine' | 'aleanombre' | 'longchaine' ) '(' exp ')' | ( 'nbrcar' | 'nbrNombre' | 'finfich' | 'alloc_bloc' ) '(' ID ')' )
            int alt62 = 5;
            switch ( input.LA(1) ) 
            {
            case 82:
            case 83:
            	{
                alt62 = 1;
                }
                break;
            case 84:
            	{
                alt62 = 2;
                }
                break;
            case 30:
            case 85:
            case 86:
            	{
                alt62 = 3;
                }
                break;
            case 87:
            case 88:
            case 89:
            	{
                alt62 = 4;
                }
                break;
            case 90:
            case 91:
            case 92:
            case 93:
            	{
                alt62 = 5;
                }
                break;
            	default:
            	    if ( state.backtracking > 0 ) {state.failed = true; return ;}
            	    NoViableAltException nvae_d62s0 =
            	        new NoViableAltException("", 62, 0, input);

            	    throw nvae_d62s0;
            }

            switch (alt62) 
            {
                case 1 :
                    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:150:4: ( 'valeur' | 'suivant' ) '(' ID ')'
                    {
                    	if ( (input.LA(1) >= 82 && input.LA(1) <= 83) ) 
                    	{
                    	    input.Consume();
                    	    state.errorRecovery = false;state.failed = false;
                    	}
                    	else 
                    	{
                    	    if ( state.backtracking > 0 ) {state.failed = true; return ;}
                    	    MismatchedSetException mse = new MismatchedSetException(null,input);
                    	    throw mse;
                    	}

                    	Match(input,14,FOLLOW_14_in_fonct1354); if (state.failed) return ;
                    	Match(input,ID,FOLLOW_ID_in_fonct1356); if (state.failed) return ;
                    	Match(input,15,FOLLOW_15_in_fonct1358); if (state.failed) return ;

                    }
                    break;
                case 2 :
                    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:151:4: 'element' '(' fonct '[' exp ( ',' exp )* ']' ')'
                    {
                    	Match(input,84,FOLLOW_84_in_fonct1364); if (state.failed) return ;
                    	Match(input,14,FOLLOW_14_in_fonct1366); if (state.failed) return ;
                    	PushFollow(FOLLOW_fonct_in_fonct1368);
                    	fonct();
                    	state.followingStackPointer--;
                    	if (state.failed) return ;
                    	Match(input,64,FOLLOW_64_in_fonct1370); if (state.failed) return ;
                    	PushFollow(FOLLOW_exp_in_fonct1372);
                    	exp();
                    	state.followingStackPointer--;
                    	if (state.failed) return ;
                    	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:151:32: ( ',' exp )*
                    	do 
                    	{
                    	    int alt61 = 2;
                    	    int LA61_0 = input.LA(1);

                    	    if ( (LA61_0 == 18) )
                    	    {
                    	        alt61 = 1;
                    	    }


                    	    switch (alt61) 
                    		{
                    			case 1 :
                    			    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:151:33: ',' exp
                    			    {
                    			    	Match(input,18,FOLLOW_18_in_fonct1375); if (state.failed) return ;
                    			    	PushFollow(FOLLOW_exp_in_fonct1377);
                    			    	exp();
                    			    	state.followingStackPointer--;
                    			    	if (state.failed) return ;

                    			    }
                    			    break;

                    			default:
                    			    goto loop61;
                    	    }
                    	} while (true);

                    	loop61:
                    		;	// Stops C# compiler whining that label 'loop61' has no statements

                    	Match(input,65,FOLLOW_65_in_fonct1382); if (state.failed) return ;
                    	Match(input,15,FOLLOW_15_in_fonct1384); if (state.failed) return ;

                    }
                    break;
                case 3 :
                    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:152:4: ( 'struct' | 'entete' | 'caract' ) '(' ID ',' CSTE ')'
                    {
                    	if ( input.LA(1) == 30 || (input.LA(1) >= 85 && input.LA(1) <= 86) ) 
                    	{
                    	    input.Consume();
                    	    state.errorRecovery = false;state.failed = false;
                    	}
                    	else 
                    	{
                    	    if ( state.backtracking > 0 ) {state.failed = true; return ;}
                    	    MismatchedSetException mse = new MismatchedSetException(null,input);
                    	    throw mse;
                    	}

                    	Match(input,14,FOLLOW_14_in_fonct1401); if (state.failed) return ;
                    	Match(input,ID,FOLLOW_ID_in_fonct1403); if (state.failed) return ;
                    	Match(input,18,FOLLOW_18_in_fonct1404); if (state.failed) return ;
                    	Match(input,CSTE,FOLLOW_CSTE_in_fonct1406); if (state.failed) return ;
                    	Match(input,15,FOLLOW_15_in_fonct1407); if (state.failed) return ;

                    }
                    break;
                case 4 :
                    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:153:4: ( 'aleachaine' | 'aleanombre' | 'longchaine' ) '(' exp ')'
                    {
                    	if ( (input.LA(1) >= 87 && input.LA(1) <= 89) ) 
                    	{
                    	    input.Consume();
                    	    state.errorRecovery = false;state.failed = false;
                    	}
                    	else 
                    	{
                    	    if ( state.backtracking > 0 ) {state.failed = true; return ;}
                    	    MismatchedSetException mse = new MismatchedSetException(null,input);
                    	    throw mse;
                    	}

                    	Match(input,14,FOLLOW_14_in_fonct1425); if (state.failed) return ;
                    	PushFollow(FOLLOW_exp_in_fonct1427);
                    	exp();
                    	state.followingStackPointer--;
                    	if (state.failed) return ;
                    	Match(input,15,FOLLOW_15_in_fonct1429); if (state.failed) return ;

                    }
                    break;
                case 5 :
                    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:154:4: ( 'nbrcar' | 'nbrNombre' | 'finfich' | 'alloc_bloc' ) '(' ID ')'
                    {
                    	if ( (input.LA(1) >= 90 && input.LA(1) <= 93) ) 
                    	{
                    	    input.Consume();
                    	    state.errorRecovery = false;state.failed = false;
                    	}
                    	else 
                    	{
                    	    if ( state.backtracking > 0 ) {state.failed = true; return ;}
                    	    MismatchedSetException mse = new MismatchedSetException(null,input);
                    	    throw mse;
                    	}

                    	Match(input,14,FOLLOW_14_in_fonct1451); if (state.failed) return ;
                    	Match(input,ID,FOLLOW_ID_in_fonct1453); if (state.failed) return ;
                    	Match(input,15,FOLLOW_15_in_fonct1455); if (state.failed) return ;

                    }
                    break;

            }
        }
        catch (RecognitionException re) 
    	{
            ReportError(re);
            Recover(input,re);
        }
        finally 
    	{
        }
        return ;
    }
    // $ANTLR end "fonct"


    // $ANTLR start "sep"
    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:157:1: sep : ( ':' | 'un' | 'une' | 'des' );
    public void sep() // throws RecognitionException [1]
    {   
        try 
    	{
            // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:158:2: ( ':' | 'un' | 'une' | 'des' )
            // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:
            {
            	if ( input.LA(1) == 17 || (input.LA(1) >= 94 && input.LA(1) <= 96) ) 
            	{
            	    input.Consume();
            	    state.errorRecovery = false;state.failed = false;
            	}
            	else 
            	{
            	    if ( state.backtracking > 0 ) {state.failed = true; return ;}
            	    MismatchedSetException mse = new MismatchedSetException(null,input);
            	    throw mse;
            	}


            }

        }
        catch (RecognitionException re) 
    	{
            ReportError(re);
            Recover(input,re);
        }
        finally 
    	{
        }
        return ;
    }
    // $ANTLR end "sep"


    // $ANTLR start "types"
    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:164:1: types : ( 'entier' | 'booleen' | 'car' | 'chaine' );
    public void types() // throws RecognitionException [1]
    {   
        try 
    	{
            // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:165:2: ( 'entier' | 'booleen' | 'car' | 'chaine' )
            // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:
            {
            	if ( (input.LA(1) >= 97 && input.LA(1) <= 100) ) 
            	{
            	    input.Consume();
            	    state.errorRecovery = false;state.failed = false;
            	}
            	else 
            	{
            	    if ( state.backtracking > 0 ) {state.failed = true; return ;}
            	    MismatchedSetException mse = new MismatchedSetException(null,input);
            	    throw mse;
            	}


            }

        }
        catch (RecognitionException re) 
    	{
            ReportError(re);
            Recover(input,re);
        }
        finally 
    	{
        }
        return ;
    }
    // $ANTLR end "types"

    public class soit_return : ParserRuleReturnScope
    {
    };

    // $ANTLR start "soit"
    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:170:1: soit : ( 'soit' | 'soient' );
    public GrammaireZParser.soit_return soit() // throws RecognitionException [1]
    {   
        GrammaireZParser.soit_return retval = new GrammaireZParser.soit_return();
        retval.Start = input.LT(1);

        try 
    	{
            // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:171:2: ( 'soit' | 'soient' )
            // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:
            {
            	if ( (input.LA(1) >= 101 && input.LA(1) <= 102) ) 
            	{
            	    input.Consume();
            	    state.errorRecovery = false;state.failed = false;
            	}
            	else 
            	{
            	    if ( state.backtracking > 0 ) {state.failed = true; return retval;}
            	    MismatchedSetException mse = new MismatchedSetException(null,input);
            	    throw mse;
            	}


            }

            retval.Stop = input.LT(-1);

        }
        catch (RecognitionException re) 
    	{
            ReportError(re);
            Recover(input,re);
        }
        finally 
    	{
        }
        return retval;
    }
    // $ANTLR end "soit"

    // $ANTLR start "synpred35_GrammaireZ"
    public void synpred35_GrammaireZ_fragment() {
        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:95:4: ( ( 'structure' )? '(' ( types ) ( ',' types )* ')' )
        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:95:5: ( 'structure' )? '(' ( types ) ( ',' types )* ')'
        {
        	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:95:5: ( 'structure' )?
        	int alt79 = 2;
        	int LA79_0 = input.LA(1);

        	if ( (LA79_0 == 31) )
        	{
        	    alt79 = 1;
        	}
        	switch (alt79) 
        	{
        	    case 1 :
        	        // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:95:6: 'structure'
        	        {
        	        	Match(input,31,FOLLOW_31_in_synpred35_GrammaireZ586); if (state.failed) return ;

        	        }
        	        break;

        	}

        	Match(input,14,FOLLOW_14_in_synpred35_GrammaireZ590); if (state.failed) return ;
        	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:95:24: ( types )
        	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:95:25: types
        	{
        		PushFollow(FOLLOW_types_in_synpred35_GrammaireZ593);
        		types();
        		state.followingStackPointer--;
        		if (state.failed) return ;

        	}

        	// C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:95:32: ( ',' types )*
        	do 
        	{
        	    int alt80 = 2;
        	    int LA80_0 = input.LA(1);

        	    if ( (LA80_0 == 18) )
        	    {
        	        alt80 = 1;
        	    }


        	    switch (alt80) 
        		{
        			case 1 :
        			    // C:\\Nouveau dossier\\sources\\as\\EditeurSyntaxiqueVocal\\EditeurSyntaxiqueVocal\\Languages\\LanguageZ\\Grammaire\\GrammaireZ.g:95:33: ',' types
        			    {
        			    	Match(input,18,FOLLOW_18_in_synpred35_GrammaireZ597); if (state.failed) return ;
        			    	PushFollow(FOLLOW_types_in_synpred35_GrammaireZ599);
        			    	types();
        			    	state.followingStackPointer--;
        			    	if (state.failed) return ;

        			    }
        			    break;

        			default:
        			    goto loop80;
        	    }
        	} while (true);

        	loop80:
        		;	// Stops C# compiler whining that label 'loop80' has no statements

        	Match(input,15,FOLLOW_15_in_synpred35_GrammaireZ605); if (state.failed) return ;

        }
    }
    // $ANTLR end "synpred35_GrammaireZ"

    // Delegated rules

   	public bool synpred35_GrammaireZ() 
   	{
   	    state.backtracking++;
   	    int start = input.Mark();
   	    try 
   	    {
   	        synpred35_GrammaireZ_fragment(); // can never throw exception
   	    }
   	    catch (RecognitionException re) 
   	    {
   	        Console.Error.WriteLine("impossible: "+re);
   	    }
   	    bool success = !state.failed;
   	    input.Rewind(start);
   	    state.backtracking--;
   	    state.failed = false;
   	    return success;
   	}


   	protected DFA34 dfa34;
	private void InitializeCyclicDFAs()
	{
    	this.dfa34 = new DFA34(this);
	    this.dfa34.specialStateTransitionHandler = new DFA.SpecialStateTransitionHandler(DFA34_SpecialStateTransition);
	}

    const string DFA34_eotS =
        "\x09\uffff";
    const string DFA34_eofS =
        "\x09\uffff";
    const string DFA34_minS =
        "\x02\x0e\x01\x1c\x01\x0f\x01\uffff\x01\x1c\x01\x00\x01\x0f\x01"+
        "\uffff";
    const string DFA34_maxS =
        "\x01\x1f\x01\x0e\x01\x64\x01\x12\x01\uffff\x01\x64\x01\x00\x01"+
        "\x12\x01\uffff";
    const string DFA34_acceptS =
        "\x04\uffff\x01\x02\x03\uffff\x01\x01";
    const string DFA34_specialS =
        "\x06\uffff\x01\x00\x02\uffff}>";
    static readonly string[] DFA34_transitionS = {
            "\x01\x02\x10\uffff\x01\x01",
            "\x01\x02",
            "\x01\x04\x44\uffff\x04\x03",
            "\x01\x06\x02\uffff\x01\x05",
            "",
            "\x01\x04\x44\uffff\x04\x07",
            "\x01\uffff",
            "\x01\x06\x02\uffff\x01\x05",
            ""
    };

    static readonly short[] DFA34_eot = DFA.UnpackEncodedString(DFA34_eotS);
    static readonly short[] DFA34_eof = DFA.UnpackEncodedString(DFA34_eofS);
    static readonly char[] DFA34_min = DFA.UnpackEncodedStringToUnsignedChars(DFA34_minS);
    static readonly char[] DFA34_max = DFA.UnpackEncodedStringToUnsignedChars(DFA34_maxS);
    static readonly short[] DFA34_accept = DFA.UnpackEncodedString(DFA34_acceptS);
    static readonly short[] DFA34_special = DFA.UnpackEncodedString(DFA34_specialS);
    static readonly short[][] DFA34_transition = DFA.UnpackEncodedStringArray(DFA34_transitionS);

    protected class DFA34 : DFA
    {
        public DFA34(BaseRecognizer recognizer)
        {
            this.recognizer = recognizer;
            this.decisionNumber = 34;
            this.eot = DFA34_eot;
            this.eof = DFA34_eof;
            this.min = DFA34_min;
            this.max = DFA34_max;
            this.accept = DFA34_accept;
            this.special = DFA34_special;
            this.transition = DFA34_transition;

        }

        override public string Description
        {
            get { return "94:1: structure : ( ( ( 'structure' )? '(' ( types ) ( ',' types )* ')' )=> ( 'structure' )? '(' types ( ',' types )* ')' | ( 'structure' )? '(' ( types | 'vecteur' '(' CSTE ')' 'de' types ) ( ',' ( types | 'vecteur' '(' CSTE ')' 'de' types ) )* ')' );"; }
        }

    }


    protected internal int DFA34_SpecialStateTransition(DFA dfa, int s, IIntStream _input) //throws NoViableAltException
    {
            ITokenStream input = (ITokenStream)_input;
    	int _s = s;
        switch ( s )
        {
               	case 0 : 
                   	int LA34_6 = input.LA(1);

                   	 
                   	int index34_6 = input.Index();
                   	input.Rewind();
                   	s = -1;
                   	if ( (synpred35_GrammaireZ()) ) { s = 8; }

                   	else if ( (true) ) { s = 4; }

                   	 
                   	input.Seek(index34_6);
                   	if ( s >= 0 ) return s;
                   	break;
        }
        if (state.backtracking > 0) {state.failed = true; return -1;}
        NoViableAltException nvae =
            new NoViableAltException(dfa.Description, 34, _s, input);
        dfa.Error(nvae);
        throw nvae;
    }
 

    public static readonly BitSet FOLLOW_algoZ_in_program66 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_soit_in_algoZ88 = new BitSet(new ulong[]{0x0000000000000010UL});
    public static readonly BitSet FOLLOW_ps_in_algoZ93 = new BitSet(new ulong[]{0x0000000000000400UL});
    public static readonly BitSet FOLLOW_10_in_algoZ102 = new BitSet(new ulong[]{0xFFFFFFFFFFFFFFF0UL,0x0000007FFFFFFFFFUL});
    public static readonly BitSet FOLLOW_lisIngnore_in_algoZ106 = new BitSet(new ulong[]{0x0000000000000800UL});
    public static readonly BitSet FOLLOW_11_in_algoZ110 = new BitSet(new ulong[]{0x0000000000013002UL});
    public static readonly BitSet FOLLOW_12_in_algoZ119 = new BitSet(new ulong[]{0x0000000000012002UL});
    public static readonly BitSet FOLLOW_fon_in_algoZ129 = new BitSet(new ulong[]{0x0000000000013002UL});
    public static readonly BitSet FOLLOW_act_in_algoZ136 = new BitSet(new ulong[]{0x0000000000013002UL});
    public static readonly BitSet FOLLOW_12_in_algoZ140 = new BitSet(new ulong[]{0x0000000000012002UL});
    public static readonly BitSet FOLLOW_13_in_act162 = new BitSet(new ulong[]{0x0000000000000010UL});
    public static readonly BitSet FOLLOW_ID_in_act166 = new BitSet(new ulong[]{0x0000000000005400UL,0x0000006000000000UL});
    public static readonly BitSet FOLLOW_14_in_act171 = new BitSet(new ulong[]{0x0000000000000010UL});
    public static readonly BitSet FOLLOW_li_in_act175 = new BitSet(new ulong[]{0x0000000000008000UL});
    public static readonly BitSet FOLLOW_15_in_act177 = new BitSet(new ulong[]{0x0000000000001400UL,0x0000006000000000UL});
    public static readonly BitSet FOLLOW_12_in_act183 = new BitSet(new ulong[]{0x0000000000000400UL,0x0000006000000000UL});
    public static readonly BitSet FOLLOW_soit_in_act188 = new BitSet(new ulong[]{0x0000000000000010UL});
    public static readonly BitSet FOLLOW_ps_in_act192 = new BitSet(new ulong[]{0x0000000000000400UL});
    public static readonly BitSet FOLLOW_10_in_act199 = new BitSet(new ulong[]{0xFFFFFFFFFFFFFFF0UL,0x0000007FFFFFFFFFUL});
    public static readonly BitSet FOLLOW_lisIngnore_in_act203 = new BitSet(new ulong[]{0x0000000000000800UL});
    public static readonly BitSet FOLLOW_11_in_act207 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_16_in_fon226 = new BitSet(new ulong[]{0x0000000000000010UL});
    public static readonly BitSet FOLLOW_ID_in_fon230 = new BitSet(new ulong[]{0x0000000000004000UL});
    public static readonly BitSet FOLLOW_14_in_fon232 = new BitSet(new ulong[]{0x0000000000000010UL});
    public static readonly BitSet FOLLOW_li_in_fon236 = new BitSet(new ulong[]{0x0000000000008000UL});
    public static readonly BitSet FOLLOW_15_in_fon238 = new BitSet(new ulong[]{0x0000000000020000UL});
    public static readonly BitSet FOLLOW_17_in_fon240 = new BitSet(new ulong[]{0x0000000081B84000UL,0x0000001E00000000UL});
    public static readonly BitSet FOLLOW_typ_in_fon244 = new BitSet(new ulong[]{0x0000000000000400UL,0x0000006000000000UL});
    public static readonly BitSet FOLLOW_soit_in_fon248 = new BitSet(new ulong[]{0x0000000000000010UL});
    public static readonly BitSet FOLLOW_ps_in_fon252 = new BitSet(new ulong[]{0x0000000000000400UL});
    public static readonly BitSet FOLLOW_10_in_fon259 = new BitSet(new ulong[]{0xFFFFFFFFFFFFFFF0UL,0x0000007FFFFFFFFFUL});
    public static readonly BitSet FOLLOW_lisIngnore_in_fon263 = new BitSet(new ulong[]{0x0000000000000800UL});
    public static readonly BitSet FOLLOW_11_in_fon267 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_set_in_lisIngnore283 = new BitSet(new ulong[]{0xFFFFFFFFFFFFF7F2UL,0x0000007FFFFFFFFFUL});
    public static readonly BitSet FOLLOW_s_in_ps313 = new BitSet(new ulong[]{0x0000000000001000UL});
    public static readonly BitSet FOLLOW_12_in_ps317 = new BitSet(new ulong[]{0x0000000000000012UL,0x0000006000000000UL});
    public static readonly BitSet FOLLOW_soit_in_ps321 = new BitSet(new ulong[]{0x0000000000000010UL});
    public static readonly BitSet FOLLOW_s_in_ps326 = new BitSet(new ulong[]{0x0000000000001000UL});
    public static readonly BitSet FOLLOW_12_in_ps330 = new BitSet(new ulong[]{0x0000000000000012UL,0x0000006000000000UL});
    public static readonly BitSet FOLLOW_li_in_s352 = new BitSet(new ulong[]{0x0000000000020000UL,0x00000001C0000000UL});
    public static readonly BitSet FOLLOW_sep_in_s354 = new BitSet(new ulong[]{0x0000000081B96000UL,0x0000001E00000000UL});
    public static readonly BitSet FOLLOW_typ_in_s359 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_13_in_s366 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_16_in_s370 = new BitSet(new ulong[]{0x0000000000004000UL});
    public static readonly BitSet FOLLOW_14_in_s372 = new BitSet(new ulong[]{0x0000000081B84000UL,0x0000001E00000000UL});
    public static readonly BitSet FOLLOW_typ_in_s376 = new BitSet(new ulong[]{0x0000000000008000UL});
    public static readonly BitSet FOLLOW_15_in_s378 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_ID_in_li408 = new BitSet(new ulong[]{0x0000000000040002UL});
    public static readonly BitSet FOLLOW_18_in_li415 = new BitSet(new ulong[]{0x0000000000000010UL});
    public static readonly BitSet FOLLOW_ID_in_li419 = new BitSet(new ulong[]{0x0000000000040002UL});
    public static readonly BitSet FOLLOW_types_in_typ439 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_19_in_typ444 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_20_in_typ450 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_structure_in_typ456 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_21_in_typ463 = new BitSet(new ulong[]{0x0000000000400000UL});
    public static readonly BitSet FOLLOW_22_in_typ465 = new BitSet(new ulong[]{0x0000000001820000UL,0x00000001C0000000UL});
    public static readonly BitSet FOLLOW_sep_in_typ467 = new BitSet(new ulong[]{0x0000000001800000UL});
    public static readonly BitSet FOLLOW_set_in_typ473 = new BitSet(new ulong[]{0x0000000002000002UL});
    public static readonly BitSet FOLLOW_25_in_typ481 = new BitSet(new ulong[]{0x000000008C004000UL,0x0000001E00000000UL});
    public static readonly BitSet FOLLOW_types_in_typ485 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_structure_in_typ489 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_26_in_typ494 = new BitSet(new ulong[]{0x0000000000004000UL});
    public static readonly BitSet FOLLOW_14_in_typ496 = new BitSet(new ulong[]{0x0000000000000020UL});
    public static readonly BitSet FOLLOW_lc_in_typ498 = new BitSet(new ulong[]{0x0000000000008000UL});
    public static readonly BitSet FOLLOW_15_in_typ500 = new BitSet(new ulong[]{0x0000000002000002UL});
    public static readonly BitSet FOLLOW_25_in_typ503 = new BitSet(new ulong[]{0x0000000080004000UL,0x0000001E00000000UL});
    public static readonly BitSet FOLLOW_structure_in_typ505 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_types_in_typ509 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_27_in_typ517 = new BitSet(new ulong[]{0x0000000002000000UL});
    public static readonly BitSet FOLLOW_25_in_typ519 = new BitSet(new ulong[]{0x0000000010000000UL,0x0000001E00000000UL});
    public static readonly BitSet FOLLOW_types_in_typ523 = new BitSet(new ulong[]{0x0000000020000000UL});
    public static readonly BitSet FOLLOW_28_in_typ527 = new BitSet(new ulong[]{0x0000000000004000UL});
    public static readonly BitSet FOLLOW_14_in_typ529 = new BitSet(new ulong[]{0x0000000000000020UL});
    public static readonly BitSet FOLLOW_CSTE_in_typ531 = new BitSet(new ulong[]{0x0000000000008000UL});
    public static readonly BitSet FOLLOW_15_in_typ533 = new BitSet(new ulong[]{0x0000000002000000UL});
    public static readonly BitSet FOLLOW_25_in_typ535 = new BitSet(new ulong[]{0x0000000080004000UL,0x0000001E00000000UL});
    public static readonly BitSet FOLLOW_types_in_typ538 = new BitSet(new ulong[]{0x0000000020000000UL});
    public static readonly BitSet FOLLOW_structure_in_typ543 = new BitSet(new ulong[]{0x0000000020000000UL});
    public static readonly BitSet FOLLOW_29_in_typ548 = new BitSet(new ulong[]{0x0000000000000010UL});
    public static readonly BitSet FOLLOW_li_in_typ550 = new BitSet(new ulong[]{0x0000000040004000UL});
    public static readonly BitSet FOLLOW_30_in_typ553 = new BitSet(new ulong[]{0x0000000000004000UL});
    public static readonly BitSet FOLLOW_14_in_typ557 = new BitSet(new ulong[]{0x0000000000000000UL,0x0000001E00000000UL});
    public static readonly BitSet FOLLOW_types_in_typ559 = new BitSet(new ulong[]{0x0000000000048000UL});
    public static readonly BitSet FOLLOW_18_in_typ562 = new BitSet(new ulong[]{0x0000000000000000UL,0x0000001E00000000UL});
    public static readonly BitSet FOLLOW_types_in_typ564 = new BitSet(new ulong[]{0x0000000000048000UL});
    public static readonly BitSet FOLLOW_15_in_typ569 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_31_in_structure609 = new BitSet(new ulong[]{0x0000000000004000UL});
    public static readonly BitSet FOLLOW_14_in_structure613 = new BitSet(new ulong[]{0x0000000000000000UL,0x0000001E00000000UL});
    public static readonly BitSet FOLLOW_types_in_structure615 = new BitSet(new ulong[]{0x0000000000048000UL});
    public static readonly BitSet FOLLOW_18_in_structure618 = new BitSet(new ulong[]{0x0000000000000000UL,0x0000001E00000000UL});
    public static readonly BitSet FOLLOW_types_in_structure620 = new BitSet(new ulong[]{0x0000000000048000UL});
    public static readonly BitSet FOLLOW_15_in_structure626 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_31_in_structure634 = new BitSet(new ulong[]{0x0000000000004000UL});
    public static readonly BitSet FOLLOW_14_in_structure638 = new BitSet(new ulong[]{0x0000000010000000UL,0x0000001E00000000UL});
    public static readonly BitSet FOLLOW_types_in_structure641 = new BitSet(new ulong[]{0x0000000000048000UL});
    public static readonly BitSet FOLLOW_28_in_structure645 = new BitSet(new ulong[]{0x0000000000004000UL});
    public static readonly BitSet FOLLOW_14_in_structure647 = new BitSet(new ulong[]{0x0000000000000020UL});
    public static readonly BitSet FOLLOW_CSTE_in_structure649 = new BitSet(new ulong[]{0x0000000000008000UL});
    public static readonly BitSet FOLLOW_15_in_structure651 = new BitSet(new ulong[]{0x0000000002000000UL});
    public static readonly BitSet FOLLOW_25_in_structure654 = new BitSet(new ulong[]{0x0000000000000000UL,0x0000001E00000000UL});
    public static readonly BitSet FOLLOW_types_in_structure656 = new BitSet(new ulong[]{0x0000000000048000UL});
    public static readonly BitSet FOLLOW_18_in_structure661 = new BitSet(new ulong[]{0x0000000010000000UL,0x0000001E00000000UL});
    public static readonly BitSet FOLLOW_types_in_structure665 = new BitSet(new ulong[]{0x0000000000048000UL});
    public static readonly BitSet FOLLOW_28_in_structure669 = new BitSet(new ulong[]{0x0000000000004000UL});
    public static readonly BitSet FOLLOW_14_in_structure671 = new BitSet(new ulong[]{0x0000000000000020UL});
    public static readonly BitSet FOLLOW_CSTE_in_structure673 = new BitSet(new ulong[]{0x0000000000008000UL});
    public static readonly BitSet FOLLOW_15_in_structure675 = new BitSet(new ulong[]{0x0000000002000000UL});
    public static readonly BitSet FOLLOW_25_in_structure677 = new BitSet(new ulong[]{0x0000000000000000UL,0x0000001E00000000UL});
    public static readonly BitSet FOLLOW_types_in_structure679 = new BitSet(new ulong[]{0x0000000000048000UL});
    public static readonly BitSet FOLLOW_15_in_structure686 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_CSTE_in_lc699 = new BitSet(new ulong[]{0x0000000000040002UL});
    public static readonly BitSet FOLLOW_18_in_lc702 = new BitSet(new ulong[]{0x0000000000000020UL});
    public static readonly BitSet FOLLOW_CSTE_in_lc704 = new BitSet(new ulong[]{0x0000000000040002UL});
    public static readonly BitSet FOLLOW_inst_in_lis719 = new BitSet(new ulong[]{0x0000000000001002UL});
    public static readonly BitSet FOLLOW_12_in_lis725 = new BitSet(new ulong[]{0xFFFFC22300000010UL,0x00000000000000FCUL});
    public static readonly BitSet FOLLOW_inst_in_lis728 = new BitSet(new ulong[]{0x0000000000001002UL});
    public static readonly BitSet FOLLOW_set_in_inst745 = new BitSet(new ulong[]{0x0000000040004070UL,0x000000003FFFC300UL});
    public static readonly BitSet FOLLOW_exp_in_inst751 = new BitSet(new ulong[]{0xFFFFC23F00021010UL,0x00000000000000FCUL});
    public static readonly BitSet FOLLOW_17_in_inst755 = new BitSet(new ulong[]{0xFFFFC23F00001010UL,0x00000000000000FCUL});
    public static readonly BitSet FOLLOW_lis_in_inst760 = new BitSet(new ulong[]{0x0000001C00000000UL});
    public static readonly BitSet FOLLOW_set_in_inst762 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_37_in_inst773 = new BitSet(new ulong[]{0x0000000040004070UL,0x000000003FFFC300UL});
    public static readonly BitSet FOLLOW_exp_in_inst775 = new BitSet(new ulong[]{0xFFFFC3E300021010UL,0x00000000000000FCUL});
    public static readonly BitSet FOLLOW_17_in_inst778 = new BitSet(new ulong[]{0xFFFFC3E300001010UL,0x00000000000000FCUL});
    public static readonly BitSet FOLLOW_lis_in_inst782 = new BitSet(new ulong[]{0x000001C000000000UL});
    public static readonly BitSet FOLLOW_38_in_inst785 = new BitSet(new ulong[]{0xFFFFC3A300001010UL,0x00000000000000FCUL});
    public static readonly BitSet FOLLOW_lis_in_inst787 = new BitSet(new ulong[]{0x0000018000000000UL});
    public static readonly BitSet FOLLOW_set_in_inst791 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_41_in_inst800 = new BitSet(new ulong[]{0x0000000000000010UL});
    public static readonly BitSet FOLLOW_ID_in_inst802 = new BitSet(new ulong[]{0x0000040000000000UL});
    public static readonly BitSet FOLLOW_42_in_inst804 = new BitSet(new ulong[]{0x0000000040004070UL,0x000000003FFFC300UL});
    public static readonly BitSet FOLLOW_exp_in_inst806 = new BitSet(new ulong[]{0x0000000000040000UL});
    public static readonly BitSet FOLLOW_18_in_inst808 = new BitSet(new ulong[]{0x0000000040004070UL,0x000000003FFFC300UL});
    public static readonly BitSet FOLLOW_exp_in_inst810 = new BitSet(new ulong[]{0xFFFFFA2300061010UL,0x00000000000000FCUL});
    public static readonly BitSet FOLLOW_18_in_inst813 = new BitSet(new ulong[]{0x0000000040004070UL,0x000000003FFFC300UL});
    public static readonly BitSet FOLLOW_exp_in_inst815 = new BitSet(new ulong[]{0xFFFFFA2300021010UL,0x00000000000000FCUL});
    public static readonly BitSet FOLLOW_17_in_inst819 = new BitSet(new ulong[]{0xFFFFFA2300001010UL,0x00000000000000FCUL});
    public static readonly BitSet FOLLOW_lis_in_inst823 = new BitSet(new ulong[]{0x0000380000000000UL});
    public static readonly BitSet FOLLOW_set_in_inst825 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_46_in_inst836 = new BitSet(new ulong[]{0x0000000000000010UL});
    public static readonly BitSet FOLLOW_ID_in_inst838 = new BitSet(new ulong[]{0x0000000000004002UL});
    public static readonly BitSet FOLLOW_14_in_inst841 = new BitSet(new ulong[]{0x0000000040004070UL,0x000000003FFFC300UL});
    public static readonly BitSet FOLLOW_exp_in_inst843 = new BitSet(new ulong[]{0x0000000000048000UL});
    public static readonly BitSet FOLLOW_18_in_inst847 = new BitSet(new ulong[]{0x0000000040004070UL,0x000000003FFFC300UL});
    public static readonly BitSet FOLLOW_exp_in_inst849 = new BitSet(new ulong[]{0x0000000000048000UL});
    public static readonly BitSet FOLLOW_15_in_inst853 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_47_in_inst861 = new BitSet(new ulong[]{0x0000000000004000UL});
    public static readonly BitSet FOLLOW_14_in_inst863 = new BitSet(new ulong[]{0x0000000000000010UL});
    public static readonly BitSet FOLLOW_ID_in_inst865 = new BitSet(new ulong[]{0x0000000000048000UL});
    public static readonly BitSet FOLLOW_18_in_inst868 = new BitSet(new ulong[]{0x0000000000000010UL});
    public static readonly BitSet FOLLOW_ID_in_inst870 = new BitSet(new ulong[]{0x0000000000048000UL});
    public static readonly BitSet FOLLOW_15_in_inst875 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_48_in_inst880 = new BitSet(new ulong[]{0x0000000000004000UL});
    public static readonly BitSet FOLLOW_14_in_inst882 = new BitSet(new ulong[]{0x0000000040004070UL,0x000000003FFFC300UL});
    public static readonly BitSet FOLLOW_exp_in_inst884 = new BitSet(new ulong[]{0x0000000000048000UL});
    public static readonly BitSet FOLLOW_18_in_inst887 = new BitSet(new ulong[]{0x0000000040004070UL,0x000000003FFFC300UL});
    public static readonly BitSet FOLLOW_exp_in_inst888 = new BitSet(new ulong[]{0x0000000000048000UL});
    public static readonly BitSet FOLLOW_15_in_inst892 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_set_in_inst897 = new BitSet(new ulong[]{0x0000000000004000UL});
    public static readonly BitSet FOLLOW_14_in_inst909 = new BitSet(new ulong[]{0x0000000040004070UL,0x000000003FFFC300UL});
    public static readonly BitSet FOLLOW_exp_in_inst911 = new BitSet(new ulong[]{0x0000000000008000UL});
    public static readonly BitSet FOLLOW_15_in_inst913 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_52_in_inst918 = new BitSet(new ulong[]{0x0000000000004000UL});
    public static readonly BitSet FOLLOW_14_in_inst920 = new BitSet(new ulong[]{0x0000000000000010UL});
    public static readonly BitSet FOLLOW_ID_in_inst922 = new BitSet(new ulong[]{0x0000000000040000UL});
    public static readonly BitSet FOLLOW_18_in_inst924 = new BitSet(new ulong[]{0x0000000000000040UL});
    public static readonly BitSet FOLLOW_CHAINE_in_inst926 = new BitSet(new ulong[]{0x0000000000040000UL});
    public static readonly BitSet FOLLOW_18_in_inst928 = new BitSet(new ulong[]{0x0000000000000040UL});
    public static readonly BitSet FOLLOW_CHAINE_in_inst930 = new BitSet(new ulong[]{0x0000000000008000UL});
    public static readonly BitSet FOLLOW_15_in_inst932 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_set_in_inst937 = new BitSet(new ulong[]{0x0000000000004000UL});
    public static readonly BitSet FOLLOW_14_in_inst957 = new BitSet(new ulong[]{0x0000000000000010UL});
    public static readonly BitSet FOLLOW_ID_in_inst959 = new BitSet(new ulong[]{0x0000000000040000UL});
    public static readonly BitSet FOLLOW_18_in_inst960 = new BitSet(new ulong[]{0x0000000000000010UL});
    public static readonly BitSet FOLLOW_ID_in_inst962 = new BitSet(new ulong[]{0x0000000000008000UL});
    public static readonly BitSet FOLLOW_15_in_inst963 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_set_in_inst968 = new BitSet(new ulong[]{0x0000000000004000UL});
    public static readonly BitSet FOLLOW_14_in_inst976 = new BitSet(new ulong[]{0x0000000040004070UL,0x000000003FFFC300UL});
    public static readonly BitSet FOLLOW_exp_in_inst978 = new BitSet(new ulong[]{0x0000000000040000UL});
    public static readonly BitSet FOLLOW_18_in_inst980 = new BitSet(new ulong[]{0x0000000040004070UL,0x000000003FFFC300UL});
    public static readonly BitSet FOLLOW_exp_in_inst982 = new BitSet(new ulong[]{0x0000000000008000UL});
    public static readonly BitSet FOLLOW_15_in_inst984 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_set_in_inst989 = new BitSet(new ulong[]{0x0000000000004000UL});
    public static readonly BitSet FOLLOW_14_in_inst1005 = new BitSet(new ulong[]{0x0000000000000010UL});
    public static readonly BitSet FOLLOW_ID_in_inst1007 = new BitSet(new ulong[]{0x0000000000040000UL});
    public static readonly BitSet FOLLOW_18_in_inst1009 = new BitSet(new ulong[]{0x0000000000000000UL,0x0000000000000001UL});
    public static readonly BitSet FOLLOW_64_in_inst1011 = new BitSet(new ulong[]{0x0000000040004070UL,0x000000003FFFC301UL});
    public static readonly BitSet FOLLOW_exp_in_inst1014 = new BitSet(new ulong[]{0x0000000000040000UL,0x0000000000000002UL});
    public static readonly BitSet FOLLOW_64_in_inst1017 = new BitSet(new ulong[]{0x0000000040004070UL,0x000000003FFFC300UL});
    public static readonly BitSet FOLLOW_exp_in_inst1019 = new BitSet(new ulong[]{0x0000000000040000UL,0x0000000000000002UL});
    public static readonly BitSet FOLLOW_18_in_inst1022 = new BitSet(new ulong[]{0x0000000040004070UL,0x000000003FFFC300UL});
    public static readonly BitSet FOLLOW_exp_in_inst1024 = new BitSet(new ulong[]{0x0000000000040000UL,0x0000000000000002UL});
    public static readonly BitSet FOLLOW_65_in_inst1028 = new BitSet(new ulong[]{0x0000000000040000UL,0x0000000000000002UL});
    public static readonly BitSet FOLLOW_18_in_inst1033 = new BitSet(new ulong[]{0x0000000040004070UL,0x000000003FFFC301UL});
    public static readonly BitSet FOLLOW_exp_in_inst1036 = new BitSet(new ulong[]{0x0000000000040000UL,0x0000000000000002UL});
    public static readonly BitSet FOLLOW_64_in_inst1039 = new BitSet(new ulong[]{0x0000000040004070UL,0x000000003FFFC300UL});
    public static readonly BitSet FOLLOW_exp_in_inst1041 = new BitSet(new ulong[]{0x0000000000040000UL,0x0000000000000002UL});
    public static readonly BitSet FOLLOW_18_in_inst1044 = new BitSet(new ulong[]{0x0000000040004070UL,0x000000003FFFC300UL});
    public static readonly BitSet FOLLOW_exp_in_inst1046 = new BitSet(new ulong[]{0x0000000000040000UL,0x0000000000000002UL});
    public static readonly BitSet FOLLOW_65_in_inst1050 = new BitSet(new ulong[]{0x0000000000040000UL,0x0000000000000002UL});
    public static readonly BitSet FOLLOW_65_in_inst1057 = new BitSet(new ulong[]{0x0000000000008000UL});
    public static readonly BitSet FOLLOW_15_in_inst1059 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_66_in_inst1064 = new BitSet(new ulong[]{0x0000000000004000UL});
    public static readonly BitSet FOLLOW_14_in_inst1066 = new BitSet(new ulong[]{0x0000000000000010UL});
    public static readonly BitSet FOLLOW_ID_in_inst1068 = new BitSet(new ulong[]{0x0000000000040000UL});
    public static readonly BitSet FOLLOW_18_in_inst1070 = new BitSet(new ulong[]{0x0000000000000000UL,0x0000000000000001UL});
    public static readonly BitSet FOLLOW_64_in_inst1072 = new BitSet(new ulong[]{0x0000000000000040UL});
    public static readonly BitSet FOLLOW_CHAINE_in_inst1074 = new BitSet(new ulong[]{0x0000000000000000UL,0x0000000000000002UL});
    public static readonly BitSet FOLLOW_65_in_inst1076 = new BitSet(new ulong[]{0x0000000000008000UL});
    public static readonly BitSet FOLLOW_15_in_inst1078 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_67_in_inst1083 = new BitSet(new ulong[]{0x0000000000004000UL});
    public static readonly BitSet FOLLOW_14_in_inst1085 = new BitSet(new ulong[]{0x0000000040004070UL,0x000000003FFFC300UL});
    public static readonly BitSet FOLLOW_exp_in_inst1087 = new BitSet(new ulong[]{0x0000000000000000UL,0x0000000000000001UL});
    public static readonly BitSet FOLLOW_64_in_inst1089 = new BitSet(new ulong[]{0x0000000040004070UL,0x000000003FFFC300UL});
    public static readonly BitSet FOLLOW_exp_in_inst1091 = new BitSet(new ulong[]{0x0000000000040000UL,0x0000000000000002UL});
    public static readonly BitSet FOLLOW_18_in_inst1094 = new BitSet(new ulong[]{0x0000000040004070UL,0x000000003FFFC300UL});
    public static readonly BitSet FOLLOW_exp_in_inst1096 = new BitSet(new ulong[]{0x0000000000040000UL,0x0000000000000002UL});
    public static readonly BitSet FOLLOW_65_in_inst1101 = new BitSet(new ulong[]{0x0000000000040000UL});
    public static readonly BitSet FOLLOW_18_in_inst1103 = new BitSet(new ulong[]{0x0000000040004070UL,0x000000003FFFC300UL});
    public static readonly BitSet FOLLOW_exp_in_inst1104 = new BitSet(new ulong[]{0x0000000000008000UL});
    public static readonly BitSet FOLLOW_15_in_inst1106 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_set_in_inst1111 = new BitSet(new ulong[]{0x0000000000004000UL});
    public static readonly BitSet FOLLOW_14_in_inst1116 = new BitSet(new ulong[]{0x0000000000000010UL});
    public static readonly BitSet FOLLOW_ID_in_inst1117 = new BitSet(new ulong[]{0x0000000000040000UL});
    public static readonly BitSet FOLLOW_18_in_inst1118 = new BitSet(new ulong[]{0x0000000000000020UL});
    public static readonly BitSet FOLLOW_CSTE_in_inst1120 = new BitSet(new ulong[]{0x0000000000040000UL});
    public static readonly BitSet FOLLOW_18_in_inst1121 = new BitSet(new ulong[]{0x0000000040004070UL,0x000000003FFFC300UL});
    public static readonly BitSet FOLLOW_exp_in_inst1123 = new BitSet(new ulong[]{0x0000000000008000UL});
    public static readonly BitSet FOLLOW_15_in_inst1124 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_set_in_inst1129 = new BitSet(new ulong[]{0x0000000000004000UL});
    public static readonly BitSet FOLLOW_14_in_inst1138 = new BitSet(new ulong[]{0x0000000000000010UL});
    public static readonly BitSet FOLLOW_ID_in_inst1139 = new BitSet(new ulong[]{0x0000000000040000UL});
    public static readonly BitSet FOLLOW_18_in_inst1140 = new BitSet(new ulong[]{0x0000000000000020UL});
    public static readonly BitSet FOLLOW_CSTE_in_inst1142 = new BitSet(new ulong[]{0x0000000000040000UL});
    public static readonly BitSet FOLLOW_18_in_inst1143 = new BitSet(new ulong[]{0x0000000000000010UL});
    public static readonly BitSet FOLLOW_ID_in_inst1145 = new BitSet(new ulong[]{0x0000000000008000UL});
    public static readonly BitSet FOLLOW_15_in_inst1146 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_ID_in_inst1151 = new BitSet(new ulong[]{0x0000040000000000UL});
    public static readonly BitSet FOLLOW_42_in_inst1153 = new BitSet(new ulong[]{0x0000000040004070UL,0x000000003FFFC300UL});
    public static readonly BitSet FOLLOW_exp_in_inst1155 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_exps_in_exp1168 = new BitSet(new ulong[]{0x0000000000000082UL});
    public static readonly BitSet FOLLOW_OPR_in_exp1171 = new BitSet(new ulong[]{0x0000000040004070UL,0x000000003FFFC300UL});
    public static readonly BitSet FOLLOW_exps_in_exp1173 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_set_in_exps1188 = new BitSet(new ulong[]{0x0000000040004070UL,0x000000003FFFC300UL});
    public static readonly BitSet FOLLOW_terme_in_exps1198 = new BitSet(new ulong[]{0x0000000000000002UL,0x0000000000000700UL});
    public static readonly BitSet FOLLOW_set_in_exps1202 = new BitSet(new ulong[]{0x0000000040004070UL,0x000000003FFFC300UL});
    public static readonly BitSet FOLLOW_terme_in_exps1212 = new BitSet(new ulong[]{0x0000000000000002UL,0x0000000000000700UL});
    public static readonly BitSet FOLLOW_facteur_in_terme1229 = new BitSet(new ulong[]{0x0000000000000002UL,0x0000000000003800UL});
    public static readonly BitSet FOLLOW_set_in_terme1231 = new BitSet(new ulong[]{0x0000000040004070UL,0x000000003FFFC300UL});
    public static readonly BitSet FOLLOW_facteur_in_terme1243 = new BitSet(new ulong[]{0x0000000000000002UL,0x0000000000003800UL});
    public static readonly BitSet FOLLOW_78_in_facteur1257 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_79_in_facteur1263 = new BitSet(new ulong[]{0x0000000040004070UL,0x000000003FFFC300UL});
    public static readonly BitSet FOLLOW_facteur_in_facteur1265 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_14_in_facteur1272 = new BitSet(new ulong[]{0x0000000040004070UL,0x000000003FFFC300UL});
    public static readonly BitSet FOLLOW_exp_in_facteur1274 = new BitSet(new ulong[]{0x0000000000008000UL});
    public static readonly BitSet FOLLOW_15_in_facteur1276 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_CSTE_in_facteur1286 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_CHAINE_in_facteur1292 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_80_in_facteur1298 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_81_in_facteur1302 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_fonct_in_facteur1307 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_ID_in_facteur1313 = new BitSet(new ulong[]{0x0000000000004002UL});
    public static readonly BitSet FOLLOW_14_in_facteur1317 = new BitSet(new ulong[]{0x0000000040004070UL,0x000000003FFFC300UL});
    public static readonly BitSet FOLLOW_exp_in_facteur1319 = new BitSet(new ulong[]{0x0000000000048000UL});
    public static readonly BitSet FOLLOW_18_in_facteur1322 = new BitSet(new ulong[]{0x0000000040004070UL,0x000000003FFFC300UL});
    public static readonly BitSet FOLLOW_exp_in_facteur1324 = new BitSet(new ulong[]{0x0000000000048000UL});
    public static readonly BitSet FOLLOW_15_in_facteur1329 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_set_in_fonct1346 = new BitSet(new ulong[]{0x0000000000004000UL});
    public static readonly BitSet FOLLOW_14_in_fonct1354 = new BitSet(new ulong[]{0x0000000000000010UL});
    public static readonly BitSet FOLLOW_ID_in_fonct1356 = new BitSet(new ulong[]{0x0000000000008000UL});
    public static readonly BitSet FOLLOW_15_in_fonct1358 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_84_in_fonct1364 = new BitSet(new ulong[]{0x0000000000004000UL});
    public static readonly BitSet FOLLOW_14_in_fonct1366 = new BitSet(new ulong[]{0x0000000040000000UL,0x000000003FFC0000UL});
    public static readonly BitSet FOLLOW_fonct_in_fonct1368 = new BitSet(new ulong[]{0x0000000000000000UL,0x0000000000000001UL});
    public static readonly BitSet FOLLOW_64_in_fonct1370 = new BitSet(new ulong[]{0x0000000040004070UL,0x000000003FFFC300UL});
    public static readonly BitSet FOLLOW_exp_in_fonct1372 = new BitSet(new ulong[]{0x0000000000040000UL,0x0000000000000002UL});
    public static readonly BitSet FOLLOW_18_in_fonct1375 = new BitSet(new ulong[]{0x0000000040004070UL,0x000000003FFFC300UL});
    public static readonly BitSet FOLLOW_exp_in_fonct1377 = new BitSet(new ulong[]{0x0000000000040000UL,0x0000000000000002UL});
    public static readonly BitSet FOLLOW_65_in_fonct1382 = new BitSet(new ulong[]{0x0000000000008000UL});
    public static readonly BitSet FOLLOW_15_in_fonct1384 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_set_in_fonct1389 = new BitSet(new ulong[]{0x0000000000004000UL});
    public static readonly BitSet FOLLOW_14_in_fonct1401 = new BitSet(new ulong[]{0x0000000000000010UL});
    public static readonly BitSet FOLLOW_ID_in_fonct1403 = new BitSet(new ulong[]{0x0000000000040000UL});
    public static readonly BitSet FOLLOW_18_in_fonct1404 = new BitSet(new ulong[]{0x0000000000000020UL});
    public static readonly BitSet FOLLOW_CSTE_in_fonct1406 = new BitSet(new ulong[]{0x0000000000008000UL});
    public static readonly BitSet FOLLOW_15_in_fonct1407 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_set_in_fonct1413 = new BitSet(new ulong[]{0x0000000000004000UL});
    public static readonly BitSet FOLLOW_14_in_fonct1425 = new BitSet(new ulong[]{0x0000000040004070UL,0x000000003FFFC300UL});
    public static readonly BitSet FOLLOW_exp_in_fonct1427 = new BitSet(new ulong[]{0x0000000000008000UL});
    public static readonly BitSet FOLLOW_15_in_fonct1429 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_set_in_fonct1435 = new BitSet(new ulong[]{0x0000000000004000UL});
    public static readonly BitSet FOLLOW_14_in_fonct1451 = new BitSet(new ulong[]{0x0000000000000010UL});
    public static readonly BitSet FOLLOW_ID_in_fonct1453 = new BitSet(new ulong[]{0x0000000000008000UL});
    public static readonly BitSet FOLLOW_15_in_fonct1455 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_set_in_sep0 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_set_in_types0 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_set_in_soit0 = new BitSet(new ulong[]{0x0000000000000002UL});
    public static readonly BitSet FOLLOW_31_in_synpred35_GrammaireZ586 = new BitSet(new ulong[]{0x0000000000004000UL});
    public static readonly BitSet FOLLOW_14_in_synpred35_GrammaireZ590 = new BitSet(new ulong[]{0x0000000000000000UL,0x0000001E00000000UL});
    public static readonly BitSet FOLLOW_types_in_synpred35_GrammaireZ593 = new BitSet(new ulong[]{0x0000000000048000UL});
    public static readonly BitSet FOLLOW_18_in_synpred35_GrammaireZ597 = new BitSet(new ulong[]{0x0000000000000000UL,0x0000001E00000000UL});
    public static readonly BitSet FOLLOW_types_in_synpred35_GrammaireZ599 = new BitSet(new ulong[]{0x0000000000048000UL});
    public static readonly BitSet FOLLOW_15_in_synpred35_GrammaireZ605 = new BitSet(new ulong[]{0x0000000000000002UL});

}
}